查询值与目标字段个数不相同错误

2023-12-25

我在将数据插入数据库时​​遇到错误。

错误是:

“查询值和目标字段的数量不相同”。

插入代码:

OleDbConnection vconn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Mutyyba\\Documents\\Database1.accdb");
vconn.Open();

string name = textBox1.Text;
string address = textBox3.Text;
int rollno = Convert.ToInt32(textBox2.Text);

string vquery = "insert into Table1 values(@vname,@vrollno,@vaddress)";

OleDbCommand vcomm = new OleDbCommand(vquery, vconn);
vcomm.Parameters.AddWithValue("@vname", name);
vcomm.Parameters.AddWithValue("@vrollno", rollno);
vcomm.Parameters.AddWithValue("@vaddress", address);

vcomm.ExecuteNonQuery();

MessageBox.Show("your record has been recorded sucessfully!");

vconn.Close();

我究竟做错了什么?


我想你只是错过了一些单引号。我看到您已用起始和结束单引号将所有参数括起来。看this http://social.msdn.microsoft.com/forums/en-US/adodotnetdataproviders/thread/ed197cbb-db7e-43eb-b9d3-34fc4f98c41a/

另一件事是,当您传递大量参数时,请准备一个参数的 SqlCommand 对象. See msdn http://msdn.microsoft.com/en-us/library/yy6y35y8.aspx更多细节。

做这样的事情:

  SqlCommand comm = new SqlCommand("INSERT INTO table VALUES (@txtsno, @txtdesg, @txtbasic)", connection);

  comm.Parameters.AddWithValue("@txtsno", txtsno.Text.Trim());

  comm.Parameters.AddWithValue("@txtsno", txtdesg.Text.Trim());

  comm.Parameters.AddWithValue("@txtsno", txtbasic.Text.Trim());

这样会更清晰,也不容易出现SQL注入。 http://en.wikipedia.org/wiki/SQL_injection

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查询值与目标字段个数不相同错误 的相关文章

随机推荐