int result = Convert.ToInt32(cmd.ExecuteScalar()),列名 'Contents' 无效。 列名 'PubDate' 无效。
用asp做博客网站时,在调试中出现以上错误,出现在写完评论,点提交时。提示以上语句错误,但是我数据库里边有contents列和pubdate列,为什么还出错?...
用asp做博客网站时,在调试中出现以上错误,出现在写完评论,点提交时。提示以上语句错误,但是我数据库里边有contents列和pubdate列,为什么还出错?
展开
4个回答
展开全部
错误并不是这一句产生的,而是由cmd的查询语句产生的。
cmd.executeScalar()只是一个执行,并显示出执行的结果而已。这句语句一般我们称之为持久化,也就是说,我们所有的cmd执行,只有在执行cmd.executeXXXX()方法是才会将数据持久化数据库中,那么我们看到的出错,一定是语句中出错了,而语句在未持久化前只是一句字符串而已,SQL并不能确定他的错误,也就是说这个错误是体现在了runtime上,编译时是无法判定的,不管你你cmd.Text是否正确,只要是合法的字符串,编译系统是不会报错的,只在runtime(运行态)下才会出现语句错误的情况。
那么你应该仔细查看一下你的text语句是否是合法的SQL语句。
cmd.executeScalar()只是一个执行,并显示出执行的结果而已。这句语句一般我们称之为持久化,也就是说,我们所有的cmd执行,只有在执行cmd.executeXXXX()方法是才会将数据持久化数据库中,那么我们看到的出错,一定是语句中出错了,而语句在未持久化前只是一句字符串而已,SQL并不能确定他的错误,也就是说这个错误是体现在了runtime上,编译时是无法判定的,不管你你cmd.Text是否正确,只要是合法的字符串,编译系统是不会报错的,只在runtime(运行态)下才会出现语句错误的情况。
那么你应该仔细查看一下你的text语句是否是合法的SQL语句。
更多追问追答
追问
public static int ExecuteCommand(string sql, params SqlParameter[] values)
{SqlCommand cmd = new SqlCommand(sql, Connection);
cmd.Parameters.AddRange(values); return cmd.ExecuteNonQuery();}
public static int GetScalar(string safeSql){ SqlCommand cmd = new SqlCommand(safeSql,Connection);int result = Convert.ToInt32(cmd.ExecuteScalar());return result;} 这是cmd语句,请问哪里出错了?
追答
打印 的saftSQL参数,看一下是否是合法SQL语句!谢谢!
展开全部
你在执行cmd.ExecuteScalar();这个命令的时候sql语句执行失败,你看看你sql同面有没Contents,PubDate两个字段,另外大小写也来注意,sql语句字段是区分大小写的!
追问
我数据库中已经设了contents列和pubdate列,大小写也检查过了。
追答
你把cmd里面的语句拿到数据库去执行,看看数据库里面报什么错就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
提交评论,不就相当于插入新记录吗?用ExecuteNonQuery()试一下,sql语句应该不分大小写吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该发你的SQL语句出来看看
追问
public static int ExecuteCommand(string sql, params SqlParameter[] values)
{SqlCommand cmd = new SqlCommand(sql, Connection);
cmd.Parameters.AddRange(values); return cmd.ExecuteNonQuery();}
public static int GetScalar(string safeSql){ SqlCommand cmd = new SqlCommand(safeSql,Connection);int result = Convert.ToInt32(cmd.ExecuteScalar());return result;} 这是cmd语句,楼上说的我没看懂.
追答
出错的应该是你这个方法的参数safeSql。打断点,看看safeSql值是什么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询