【发布时间】:2011-11-08 12:53:14
【问题描述】:
我想插入数据自动生成主键我不知道如何生成它
共有 17 列,第一列包含主键,第二列从 Name 开始。
我在执行 ExecuteNonQuery() 时遇到错误。
错误是:
查询值和目标字段的数量不相同。
显然我知道为什么我会收到此错误,因为我插入的数据是 16 列而不是 17 列
我不知道如何通过生成主键来插入命令。
主键列在前,其名称为 CustomerId。
我使用的代码是
OleDbCommand cmd = new OleDbCommand("insert into realtimedata values('" + Name+ "','" + Symbol+ "','" + D + "','" + Green + "','" + GB + "','" + GS + "','" + GBIntraBuy + "','" + GBTR1Buy + "','" + GBTR2Buy + "','" + GBTR3Buy + "','" + GBIntraSell + "','" + GBTR1Sell + "','" + GBTR2Sell + "','" + GBTR3Sell + "','" + GRSTL + "','" + Red + "');", con);
OleDbCommand cmd1 = new OleDbCommand("select CustomerId from realtimedata where (SecSym='" + Symbol + "')order by CustomerId", con);
temp = 0;
try
{
object count = cmd1.ExecuteScalar();
if ((count == "") || (count == null) )
{
cmd.ExecuteNonQuery();
if (temp > 0)
{
//MessageBox.Show("One Record Added");
}
else
{
// MessageBox.Show("Record not added");
}
}
}
catch
{
// con.Close();
}
提前致谢。
【问题讨论】:
-
“自动生成主键”。不。你将如何处理并发?如果两个用户同时请求一个密钥怎么办?您将花费大量时间重新发明轮子。拜托,看在上帝的份上和他杀死的两只小猫的份上,请使用自动编号列或解释真的清楚为什么你认为你不能使用它。
标签: c# .net winforms ms-access ado.net