int result = Convert.ToInt32(cmd.ExecuteScalar()),列名 'Contents' 无效。 列名 'PubDate' 无效。

用asp做博客网站时,在调试中出现以上错误,出现在写完评论,点提交时。提示以上语句错误,但是我数据库里边有contents列和pubdate列,为什么还出错?... 用asp做博客网站时,在调试中出现以上错误,出现在写完评论,点提交时。提示以上语句错误,但是我数据库里边有contents列和pubdate列,为什么还出错? 展开
 我来答
百度网友66a8d48e5
2013-03-12 · TA获得超过7687个赞
知道大有可为答主
回答量:3002
采纳率:12%
帮助的人:3886万
展开全部
错误并不是这一句产生的,而是由cmd的查询语句产生的。

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语句!谢谢!
nextgates
2013-03-12
知道答主
回答量:45
采纳率:0%
帮助的人:13.9万
展开全部
你在执行cmd.ExecuteScalar();这个命令的时候sql语句执行失败,你看看你sql同面有没Contents,PubDate两个字段,另外大小写也来注意,sql语句字段是区分大小写的!
追问
我数据库中已经设了contents列和pubdate列,大小写也检查过了。
追答
你把cmd里面的语句拿到数据库去执行,看看数据库里面报什么错就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飘_风
2013-03-12 · 超过25用户采纳过TA的回答
知道答主
回答量:151
采纳率:0%
帮助的人:57.4万
展开全部
提交评论,不就相当于插入新记录吗?用ExecuteNonQuery()试一下,sql语句应该不分大小写吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
桂慕思0IW
2013-03-12 · TA获得超过433个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:141万
展开全部
应该发你的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值是什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式