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

请看代码:
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();

大神求助啊,只要没有输出内容,这两项插入就都要报错,我想实现的是不输入就不做改动嘛

语句也有问题
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());
//执行
}

温馨提示:内容为网友见解,仅供参考
无其他回答

System.FormatException: 该字符串未被识别为有效的 DateTime。 C#运行...
DateTime a = Convert.ToDateTime(dataGridView1.SelectedCells[1].Value.ToString());不要使用这种转换方式。DateTime.TryParse,用这个来做日期转换

C#语言System.FormatException:"输入字符串的格式不正确
{0}里面的空格去掉

c#输入字符串格式不正确 未处理的formatexception
formatexception?这个错误证明的输入的属于格式错误,而不是数字的大小范围问题,你可以调试下,看看这个文本框的是不是数字?

C#异常处理,怎样在代码级别知道一个错误的具体类型
回答:ex.GetType()不就可以知道了啊?以被0除做示例

c#输入字符串格式不正确 未处理的formatexception
回答:txtStart.Text这里的值确定是纯数字吗?检查输入的字符可能包含了非数字的内容,所以报错了。 还有转的时候建议使用Convert.ToInt32,还有就是startPort这个变量你定义成整型了吗?

100分!未处理异常 System.FormatException:输入字符串的格式不正确_百...
Console.WriteLine("the first number is "+Comparison+" the second number。");这里用字符串拼接就可以了。

未处理 System.FormatException 输入字符串的格式不正确
("{o}+{1}i",这的{o}是字母o,应该是数字0啊

C#运行控制台程序时,总是提示“未处理的FormatException”
按你指定的格式,第一次正常输入并显示结果后,以后的每一次应这样输入:<回车> 输入数字<回车> 也可以删除第25行,然后这样输入:输入数字<回车>

...报错:System.FormatException 输入的字符串格式不正确!
dataRow.CreateCell(column.Ordinal).SetCellValue(Convert.ToInt32(row[column].ToString()));就这个row[column]的值不少数字类型的,转换失败,你调试看看。

c# 输入字符串的格式不正确。FormatException异常
string save = string.Format("UPDATE [Paper] SET [Answer]='{0}' WHERE [loginName]='{1}' AND [Question]='{2}'", answerid, login.userN, int.Parse(id)); 改成这个试试 还有你 int.Parse(id) 确定传入进来的是数值型么 如果是 改成这个就可以了 如果不是 就看下id = ra....

相似回答
大家正在搜