如何在ms访问数据库中插入带主键的记录c#

时间:2011-11-09 03:45:29

标签: c# winforms ms-access oledb

我使用以下命令在MS Access数据库中插入记录:

OleDbCommand cmd = new OleDbCommand("insert into Table1 values('" + Name + "','" +
Symbol + "','" + D + "','" + Red + "','" + RedBuy + "','" + RedSell + "','" + 
SBIntraBuy + "','" + SBTR1Buy + "','" + SBTR2Buy + "','" + SBTR3Buy + "','" + 
SBIntraSell + "','" + SBTR1Sell + "','" + SBTR2Sell + "','" + SBTR3Sell + "','" + RSTL
+ "','" + Green + "');", con);

我想在Name之前添加一个名为CustomerId的列,其中包含一个主键。我不知道如何用主键插入它。我应该在主键的命令中添加什么?

如果有人能帮助我,我们将非常感激。

提前致谢。

检查this link是否有表格布局的截屏。

1 个答案:

答案 0 :(得分:4)

如果您的密钥是自动递增,那么您不需要。数据库将为您完成。如果您的密钥不是自动增量,请考虑更改它。它真的很整洁!

另外,请考虑使用binding而不是构建完整的插入查询。

假设下表:

Table1
PK (auto_increment)
Name
Symbol

您想要做的是:

OleDbCommand cmd = new OleDbCommand("insert into Table1 (Name,Symbol) values (?,?)");
cmd.Parameters.Add(new OleDbParameter("@Name",Name));
cmd.Parameters.Add(new OleDbParameter("@Symbol",Symbol));

或(更安全):

OleDbCommand cmd = new OleDbCommand("insert into Table1 (Name,Symbol) values (@Name,@Symbol)");
cmd.Parameters.Add(new OleDbParameter("@Name",Name));
cmd.Parameters.Add(new OleDbParameter("@Symbol",Symbol));

最后:

cmd.ExecuteNonQuery();