2011-11-09 67 views
1

我使用下面的命令在MS Access数据库中插入一条记录:如何插入一条记录与在MS Access数据库中的主键C#

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); 

我想叫客户ID名称前添加一列与主键。我不知道如何用主键插入它。我应该在我的主键中添加什么?

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

在此先感谢。

检查this link用于表格布局的屏幕截图。

+0

'CustomerId'字段是否自动递增?我们能否看到你的餐桌结构? –

+0

一分钟请我一边截图 –

+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(); 
+0

C#可以接受吗?作为参数。我总是看到'Parameters.Add()'方法中使用的变量; '@ Name'或'@ Symbol'。 –

+0

感谢它的工作,但我不能投票给你,因为我没有足够的声誉 –

+0

@AdamWenger该死的,我认为你是正确的。让我检查一下。 – MPelletier

相关问题