我创建了一个简单的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";