【发布时间】:2013-12-17 04:17:20
【问题描述】:
所以,我可以成功地向数据库中添加一个新波段,但有时我不需要所有参数。在我的数据库中,“图片”和“描述”被允许具有“空”值,那么为什么 C# 一直给我没有提供参数的错误消息?
public static void AddBand(Band band){
try
{
String sql = "INSERT INTO Band(Naam, Picture, Description, Facebook, Twitter) VALUES(@p1,@p2,@p3,@p4,@p5)";
DbParameter p1 = Database.AddParameter("@p1", band.Name);
DbParameter p2 = Database.AddParameter("@p2", band.Picture);
DbParameter p3 = Database.AddParameter("@p3", band.Description);
DbParameter p4 = Database.AddParameter("@p4", band.Facebook);
DbParameter p5 = Database.AddParameter("@p5", band.Twitter);
Database.ModifyData(sql, p1, p2, p3, p4, p5);
MessageBox.Show("Band successfully added.");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
【问题讨论】:
-
C#
null值与 SQL 中使用的值不同。尝试使用DBNull.Value。 -
您是否有时不提供参数,即使它在您的查询中?
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
-
这里缺少很多上下文。即,
Database是什么,ModifyData究竟做了什么,你是否在IDbCommand的参数集合上利用AddWithValue方法?