C#编程,输入为空时,报错:异常详细信息: System.FormatException: 该字符串未被识别为有效的 DateTime

请看代码:sqlStr="insertinto[XSB](CSSJ,ZXF)values(@CSSJ,@ZXF)";SqlCommandcmd=newSqlCommand... 请看代码:
sqlStr = "insert into[XSB](CSSJ,ZXF)values(@CSSJ,@ZXF)";
SqlCommand cmd=new SqlCommand(sqlStr,conn);
cmd.Parameters.Add("@CSSJ", SqlDbType.Date).Value = StuCSSJ.Text.Trim();
cmd.Parameters.Add("@ZXF", SqlDbType.Int).Value = StuZXF.Text.Trim();

大神求助啊,只要没有输出内容,这两项插入就都要报错,我想实现的是不输入就不做改动嘛
展开
 我来答
syht2000
高粉答主

2014-05-16 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
语句也有问题
string cssj=StuCSSJ.Text.Trim();
string zxf=StuZXF.Text.Trim();
if(cssj!="" && zxf!="")
{

sqlStr = "insert into [XSB](CSSJ,ZXF) values (@CSSJ,@ZXF)";
SqlCommand cmd=new SqlCommand(sqlStr,conn);
cmd.Parameters.Add("@CSSJ", SqlDbType.Date).Value = cssj;
cmd.Parameters.Add("@ZXF", SqlDbType.Int).Value =zxf;
//执行

}
追问
你这个就必须都不为空才能执行插入操作,能不能让哪个有值就插入哪个,没有值就不插入呢?我的整个程序是增加学生信息,学号,姓名,出生时间,总学分这些,希望能做到有值就插入,没有值就空着,请问怎么实现呢?
追答
原理基本一样
string cssj=StuCSSJ.Text.Trim();
string zxf=StuZXF.Text.Trim();
sqlStr = "insert into [XSB]({0}) values ({1})";
string fields="";
string valist="";
List list=new List();

if(cssj=="")
{
fields+="cssj,";
valist+="@cssj,";
SqlParameter par = new SqlParameter("@cssj", SqlDbType.Date);

par.Value =DateTime.Parse(cssj);//你原本的赋值按你指定的类型是错的,下面也是一样,不太清楚具体情况,你自己修改一下

list.Add(par);
}

if(zxf!="")
{
fields+="zxf,";
valist+="@zxf,";
SqlParameter par = new SqlParameter("@zxf", SqlDbType.int);
par.Value =int.Parse(zxf);
list.Add(par);
}

fields=fields.Trim(',');
valist=valist.Trim(',');

if(list.Count>0)
{
sqlStr=string.Format(sqlStr,fields,valist);
SqlCommand cmd=new SqlCommand(sqlStr,conn);
cmd.AddRange(list);//或者是cmd.AddRange(list.ToArray());
//执行
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式