新手提问,向sql server写日期型数据
各位大哥,我想往sql server中写日期型数据,想用传参数的方法写。我现在用这种方法可以将日期存入数据库没有问题,但是如果我想存一个空值时就会有问题,问题提示说
String was not recognized as a valid DateTime.
请问大家我应该怎么做才能既支持存入日期型数据,又支持存入空值????
private void addButton_Click(.....)
{
........
myCommand = myConnection.CreateCommand();
string command = "insert into Ark1(PurchaseDate) values (@PurchaseDate)";
myCommand.Parameters.Add("@PurchaseDate", SqlDbType.DateTime);
//其中bDateBox是一个文字框,它存的是一个日期,是从日历选择得到的。
//如果想存入空值,下面这句话就要出错说‘这个字符串不能被认为是一个有效的日期格式’
myCommand.Parameters[PurchaseDate].Value = Convert.ToDateTime(bDateBox.Text);
myCommand.CommandText = command;
myCommand.ExecuteNonQuery();
.......
}
问题点数:20、回复次数:8Top
1 楼50277(柳影随风)回复于 2005-03-04 09:11:18 得分 5
你把日期的空值的写成 1900-01-01 试试,日期类型好象没有传统意义上的 “”Top
2 楼wxqq2001(就让我用一生等待)回复于 2005-03-04 09:11:22 得分 5
判断bDateBox.Text是否为空再处理Top
3 楼sunly()回复于 2005-03-04 09:23:46 得分 0
写成1990-01-01
或者在程序中判断如果字符串是空,就不用转换成日期型了.但保障你的数据库字段的日期型可以为空.
insert into Table1 (id,dat) values (3,'')它是可以通过的.Top
4 楼ziyan0218()回复于 2005-03-04 09:24:04 得分 0
同意 50277(柳影随风),空值存成 1900-01-01Top
5 楼mo_mo()回复于 2005-03-04 09:30:02 得分 0
除了作判断没有别的办法了吗?实际上我有16个输入变量,其中3个是日期型变量,所以判断3次8种情况,每一种情况是不是insert函数和参数都要重新写呢?这样做太麻烦了。而且我必须支持输入日期为空值得情况呀。怎么办,没有简单一点的方法了吗?Top
6 楼veryhappy(wx.net)回复于 2005-03-04 09:44:05 得分 10
存入空值用 DBNull.ValueTop
7 楼mo_mo()回复于 2005-03-04 09:47:10 得分 0
谢谢大家,我做了判断,如果为空字符串,存成的值确实是1900-01-01。可是我日期不能写成1900-01-01呀,这样存客户不能满意亚!看来我只能判断如果是空字符串的话,就不insert这个数据了,这样做太麻烦了Top
8 楼mo_mo()回复于 2005-03-04 17:46:56 得分 0
OK,确实像veryhappy说得那样:存入空值用DBNull.ValueTop




