我开发了一个保存图片的程序。但我收到此错误消息:
无法将值NULL插入列'Id'
sides
答案 0 :(得分:2)
在任何事情之前你应该检查你的表Bild的结构, 你可能有一个名为Id的列,它是约束,不能为空。
通过阅读您的代码,我无法在下一行看到您提供的代码,而且你的SQL:
cm.CommandText = "insert into Bild (FileName,Datei) values ('" + label1.Text.ToString() + "',@picture )";
接下来应该做的是:
Guid.NewGuid
方法为每个新行创建新的Guid)在Sql上编辑id列并应用AUTO_INCREMENT
关键字来执行自动增量功能,例如:
更改表格Bild( id int NOT NULL AUTO_INCREMENT, 列的其余部分 );
或者您可以应用后续步骤,以防您使用Microsoft SQL ,我想您这样做是因为我可以看到您在C#代码中使用了SqlCommand.CommandText属性。
据推测,你正在设计这张桌子。如果没有:右键单击 表名 - "设计"。单击所需的列。在"列 属性" (在底部),滚动到"身份规范" 部分,展开它,然后切换"(是身份)"到"是"。
答案 1 :(得分:0)
我无法添加评论,所以我会在这里回答。 如果您的Id是主键,您可以自己插入它或使用标识选项(自动增量):
将标识选项添加到ssms的密钥中。如果您想通过查询来执行此操作,请按照此处给出的答案https://dba.stackexchange.com/questions/128433/add-autoincrement-to-existing-pk
执行insert into Bild (Id,FileName,Datei) values ([your id], 'val1', 'val2')
。
注意:如果您的主键无法自行执行(自动增量),则必须指定要插入的ID