要往从excel里面导入日期类型的数据到SQL server的日期列里面,该怎么写?
我用的是C#语言,程序是这样的
string ass_indate = string.Empty;
ass_indate = ds.Tables[0].Rows[i][j].ToString().Trim();
excelsql = string.Format("insert into assets (ass_indate) values ('{0})", ass_indate);
总是报这个错误:
在
System.Data.SqlClient.SqlException 中第一次偶然出现的“System.Data.dll”类型的异常
------解决方案--------------------调试看看ass_indate是什么值
------解决方案-------------------- 你上面的 ass_indate是string型, 但是向数据库中插入的时候,你看数据库的对应的是什么类型
------解决方案-------------------- 你数据库字段类型是 date ,excel 字段类型是string 类型不对应 得转化下
------解决方案--------------------类型无关,只要ass_indate是合法的时间格式即可,估计是ass_indate的格式不合法
------解决方案--------------------简单的 改法是 把你的数据库字段 改为 vchar 类型
------解决方案--------------------两个可能的原因:
1、{0}右邊少一個單引號。
2、EXCEL中是空值,因為insert語句中,日期不可以插入空字符串,這個需要在代碼中進行判斷,如果EXCEL中不是空值,就insert這個值,否則就insert一個null。
------解决方案--------------------日期怎么可能不能插入空值?
存储过程都没问题...
DateTime? date = null;
if(!string.IsNullOrEmpty(ds.Tables[0].Rows[i][j].ToString().Trim()))
{
date = Datetime.Parse(ds.Tables[0].Rows[i][j].ToString().Trim());
excelsql = string.Format("insert into assets (ass_indate) values ('{0})", date);
}
else
{
excelsql = string.Format("insert into assets (ass_indate) values ('{0})", date);
}