我有一个 C# Windows 窗体,可以将值输入到 SQL Server 数据库中,但该数据库无法正常工作,但没有错误吗?



我创建了一个简单的Windows表单,将数据输入到SQL Server数据库表中。从表面上看,这似乎很好,没有错误,但是将数据提交到表中后,该数据不会出现。我已经查看了连接指向的位置,这似乎很好。所以我现在被困住了。任何帮助都会很棒。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace WindowsFormsApp7
{
    public partial class Onbutton1_Click : Form
    {
        public Onbutton1_Click()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                String str = 
"den1.mssql7.gear.host;database=generic;UID=generic;password=Generic";
                String cmdText1 = "INSERT INTO TEST1 (Name) VALUES ('%'+ @Name + '%')";
                String cmdText2 = "INSERT INTO TEST1 (Age) VALUES ('%'+ @Age + '%')";
                SqlConnection con = new SqlConnection(str);
                SqlCommand cmd1 = new SqlCommand(cmdText1, con);
                SqlCommand cmd2 = new SqlCommand(cmdText2, con);  
                cmd1.Parameters.Add("@Name", SqlDbType.VarChar, 255).Value =  textBox1.Text;
                cmd2.Parameters.Add("@Age", SqlDbType.VarChar, 255).Value = textBox2.Text;
                con.Open();
                cmd1.ExecuteNonQuery();
                cmd2.ExecuteNonQuery();
                DataSet ds = new DataSet();
                con.Close();
        }
        catch (Exception es)
        {
            MessageBox.Show("Complete");
        }
    }
}

你的问题就在这里

String cmdText1 = "INSERT INTO TEST1 (Name) VALUES ('%'+ @Name + '%')";
String cmdText2 = "INSERT INTO TEST1 (Age) VALUES ('%'+ @Age + '%')";

这需要

 String cmdText1 = "INSERT INTO TEST1 (Name) VALUES (@Name)";
 String cmdText2 = "INSERT INTO TEST1 (Age) VALUES (@Age)";

顺便说一句,很好奇为什么这是两个单独的陈述。如果要在单个行中插入"名称"和"期限",则需要是单个查询。

 String cmdText = "INSERT INTO TEST1 (Name,Age) VALUES (@Name,@Age)";
 cmd1.Parameters.Add("@Name", SqlDbType.VarChar, 255).Value = textBox1.Text;
 cmd1.Parameters.Add("@Age", SqlDbType.VarChar, 255).Value = textBox2.Text;

感谢@Crowcoder的提示,异常指示关键字错误。只是想要比我给的多一点。

String str ="server=den1.mssql7.gear.host;
database=generic;
UID=generic;
password=Generic";