我正在开发一个表单以在数据库中插入数据(SQlServer 2005)我在WPF中使用Linq到Sql;
我有这个数据库:
Column Name Data Type Allow Null
CODE ID Int(autoIncr) No
BoatName Nvarchar(100) No
BoatType Nvarchar(50) yes
NumberOfSeats Int yes
And so on...
现在当我在表单中插入一条新记录时,如果我留空了TextBox“txtNumberOfSeats”,它引用数据库中的字段“NumberOfSeat” 当我单击按钮保存数据库时,给我这个错误:“输入字符串的格式不正确。”
为什么我不能将“NumberOfSeats”字段留空如果我在数据库中设置它AllowNull =是?
当我点击按钮保存以插入数据库中的新记录时,我发布了代码:
DataClassesDataContext dc = new DataClassesDataContext();
Boat_TBL boat = new Boat_TBL();
boat.BoatName = txtBoatName.Text;
boat.BoatType = txtBoatType.Text;
boat.NumberOfSeats = Int32.Parse(txtNumberOfSeats.Text);
dc.Boat_TBLs.InsertOnSubmit(boat);
dc.SubmitChanges;
您是否有任何建议可以解决此问题?
非常感谢
干杯
答案 0 :(得分:2)
保存到数据库时,可以在数据访问层上传递null。 例如尝试这样的事情:
if (String.isNullOrEmpty(txtNumberOfSeats.Text))
{
NumberOfSeats = DBNull.Value;
}
答案 1 :(得分:0)
对空字符串传递给Int32.Parse(...)时,调用失败。如果boat.NumberOfSeats是一个可以为null的int,则只应在txtNumberOfSeats.Text不是空字符串时设置它。
答案 2 :(得分:0)
你可以使用整数tryParse方法和输出参数可以作为座位使用..