这是我的代码,每当我在文本框中输入,然后单击按钮,就会发生错误:
未处理SqlException,列名或提供的值数与表定义不匹配。
请帮帮忙
private void button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"Data Source=XXYZZ\SQLEXPRESS;AttachDbFilename=C:\Users\trist\Documents\Invent.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;");
SqlCommand cmd = new SqlCommand ("Insert into tblLogin values ('"+ txtUsername.Text + '"'+ txtPassword.Text + "')",con);
con.Open();
int i = cmd.ExecuteNonQuery();
con.Close();
if (i > 0)
{
MessageBox.Show("Registered");
}
else
{
MessageBox.Show("HEHE");
}
}发布于 2017-07-14 09:15:22
insert SQL有两个列值,必须用逗号分隔,但没有:
// your incorrect SQL query:
SqlCommand cmd = new SqlCommand ("Insert into tblLogin values ('"+ txtUsername.Text + '"'+ txtPassword.Text + "')",con);但是,您应该开始使用参数化查询f.e,而不是修复这个问题。为了防止SQL注入:
SqlCommand cmd = new SqlCommand ("Insert into tblLogin values (@user, @password)",con);
cmd.Parameters.Add("@User", SqlDbType.VarChar).Value = txtUsername.Text;
cmd.Parameters.Add("@Password", SqlDbType.VarChar).Value = txtPassword.Text;您还应该将using语句用于实现IDisposable的所有东西,比如连接和命令。在那条路上。确保即使在异常情况下也处理/关闭连接(重要)。
发布于 2017-07-14 09:18:34
你错过了一个逗号(,)
values ('"+ txtUsername.Text + '"'+ txtPassword.Text + "')",con); 最好指定列名。
INSERT INTO MyTable(Column1, Column2)
VALUES (Value1, Value2), (Value1, Value2)https://stackoverflow.com/questions/45099034
复制相似问题