作者:霸气的饭桶丶_130 | 来源:互联网 | 2023-09-23 19:04
stringdriverserverlocalhost;databaseqzz;u;SqlConnectionconnnewSqlConnection(driver);
string driver="server=localhost;database=qzz;uid=sa";
SqlConnection cOnn=new SqlConnection(driver);
conn.Open();
string sql="select SUM(点数) from 自动 where 日期="+"'"+DateTime.Today.ToString()+"'";
SqlCommand comm=new SqlCommand(sql,conn);
int a=(int)comm.ExecuteScalar();
Response.Write(a);
这是代码
10 个解决方案
应该是DateTime.Today.ToString()这个东西,看你日期在数据库里面是什么类型的了,如果是DATATIME这么写好像要报错
一个调试的方法:
跟踪一下,得到字符串sql的值,然后将其拷贝到SQL查询分析器里面,看是否能够正常执行!如果能,就是你的程序问题,否则就是构造出来的查询语句问题!
查不到吧,
if(!(comm.ExecuteScalar()==System.DBNull.Value ))
{
a=(int)comm.ExecuteScalar();
}
数据库服务器定义的日期格式和web服务器定义地不同, 可能会这样,
你就老实点这么写 DateTime.Today.ToString("yyyy-MM-dd HH:mm:ss") 不就好了。。 要控制到毫秒自己加上去
不好意思没说清楚,是这种出错。
int a=(int)comm.ExecuteScalar();
Object obj = comm.ExecuteScalar();
if(obj!=DBNull.Value)
{
int a = (int)obj;
}
Object obj = comm.ExecuteScalar();
int a;
if(obj==DBNull.Value)
{
a = 0;
}
else
{
a = (int)obj;
}
使用Convert.ToInt32(comm.ExecuteScalar())试试!