C# SQL向数据库里添加数据

来源:百度知道 编辑:UC知道 时间:2024/09/21 21:47:37
//通过这个语句(str2 = "insert into VIP.[dbo].[采购记录](货号,商品名称,数量,进货价,供应商,金额) values('" + this.textBox5.Text.Trim() + "','" + this.textBox1.Text.Trim() + "'," + int.Parse(this.textBox2.Text.Trim()) + "," + float.Parse(this.textBox3.Text.Trim()) + ",'" + this.textBox4.Text.Trim() + "'," + float.Parse(textBox6.Text.Trim()) + " )";) //向数据库里添加数据,这个语句如果某项为空那么就会报错,但是实际中有的选项可以为空,但是在程序中得把添加的语句写出来。这个问题该怎么解决,我希望就是即使某项为空程序也不会报错。

如果出现空项,当然出错在sql语句中就会出现 ", ,"这两连续两个逗号。
建议数据库里可以为空的字段设置一个默认值。然后你组织sql语句的时候,加判断,空项就不要写在sql语句里。
或者如果你数据库该字段默认为"0"的话。
可以这样
string sName;
if (this.textBox1.Text.Trim() == "")
sName = "0";
else
sName = this.textBox1.Text.Trim() ;
然后在sql语句中用sName 代替 原来的this.textBox1.Text.Trim()
大致了解吧

我觉得你可以这样啊
在语句前先判断一些能空的控件
比如
int number;
if(this.textbox1.text.trim()=="")
{
number=0;
}
else{number=int.Parse(this.textBox2.Text.Trim()) }
然后sql语句用number来做,这样也能增加可读性

用二个变量来拼,一个拼前面的字段,一个拼后面的值

一个txtbox.tezt都判断
{
这里面写二个字符串的拼装,为空二个都不拼装进去就好了
}

报错应该是这些地方报错:

int.Parse(this.textBox2.Text.Trim())
float.Parse(this.textBox3.Text.Trim())
float.Parse(textBox6.Text.Trim())

因为不能转换空字符串为int或float

你可以给它个初始值0,如果不为空才转换