2011-04-15 97 views
0
sCnd = "INSERT INTO .dbo.Table(Col1, Col2, Col3) Values (1,2,3); 

using (DbCommand tempCommand2 = CommandFactory.CreateCommand(db)) 
{ 
    tempCommand2.CommandText = sCmd; 
    tempCommand2.ExecuteNonQuery(); 
} 

表还有一个不允许为空的Col4。ADO.NET SqlCommand:无法将NULL值插入列

错误:无法插入NULL值插入列COL4

当我在Management Studio中的一切执行SCMD工作正常。

为什么我会得到异常?

回答

1

如果您未指定列的值NULL,则除非有另外说明的constraint

由于Col4不允许NULL,看起来它没有defaultconstraint这就是为什么你会收到错误。

你还没有显示你在SSMS中执行的SQL,但我猜测,不同的数据库(生产/开发),不同的表?

+0

你还没有显示你在SSMS中执行的SQL,但我猜,不同的数据库(生产/开发),不同的表?是...:s – Rookian 2011-04-15 08:45:57

2

Table has also a Col4 that does not allow null.

有你的答案。如果管理工作室无论如何工作,它可能插入一个默认值?

2

由于没有插入Col4列的值,因此不允许nulls和我只能假设没有默认值,您会得到例外。

但是好像你问了一个错误的问题;你是不是故意问,为什么查询在SSMS中运行?

我怀疑的问题,的问题会被埋在实际语法的某处,而您选择的语法并不包括在内。

相关问题