private void timer1_Tick(object sender, EventArgs e)
{
int a=0;// 为了符合数据库类型 ,可空类型;
Form4 nn = new Form4();
SqlConnection sqlconn = new SqlConnection(@"server=(local);database=xmgl;uid=sa;pwd=;Connection Timeout=30");
sqlconn.Open();
SqlCommand sqlcomm = new SqlCommand("select * from money",sqlconn); SqlDataReader sqlread = sqlcomm.ExecuteReader();
while(sqlread.Read())
{
//a = (int)sqlread.GetValue(4); a = (sqlread[4].ToString() == null ? 0 : Convert.ToInt32(sqlread[4]));//
if(a==0)
{
DateTime b=Convert.ToDateTime(sqlread[5].ToString());
if(DateTime.Now>b)
{
nn.Show();
}
}
if(a==1)
{
DateTime b = Convert.ToDateTime(sqlread[6].ToString());
if(DateTime.Now>b)
{
nn.Show();
}
}
if (a == 3)
{
DateTime b = Convert.ToDateTime(sqlread[7].ToString().Trim()); //该字符串未被识别为有效的 DateTime。???
//DateTime b = (DateTime)sqlread.GetValue(7);
// DateTime b = DateTime.Parse(sqlread[7].ToString()); //该字符串未被识别为有效的 DateTime。???
// DateTime b = (DateTime)sqlread[7]; //指定的转换无效。???
// DateTime b = DateTime.Parse(sqlread[7].ToString());
// DateTime b = (DateTime)DateTime.Parse(Convert.ToDateTime(sqlread[7]).ToString("yyyy-MM-dd")); //对象不能从 DBNull 转换为其他类型。
// DateTime b = (DateTime)DateTime.Parse(Convert.ToDateTime(sqlread[7].ToString()).ToString("yyyy-MM-dd")); //该字符串未被识别为有效的 DateTime??
if(DateTime.Now>b)
{
nn.Show();
}
}
if (a==7)
{
DateTime b = Convert.ToDateTime(sqlread[8].ToString());
if(DateTime.Now>b)
{
nn.Show();
}
}
}
}
从这个可以看出,有的sqlread[7]是null的,这样的话,你就要判断一下
DateTime b ;
if( sqlread[7] != null) //还是比较DBNull,你自己试试。
{
b = Convert.ToDateTime(sqlread[7]);
}
else
{
b = null;
}
...
if( sqlread[7] != system.DBNull.value) //还是比较DBNull,你自己试试。
{
b = Convert.ToDateTime(sqlread[7]);
}
else
{
b = null;
}
谢谢,感动中