我的SQL怎么不执行呀,大家帮我看看

yang528119 2007-06-11 02:02:34
我有两个SQL语句,一个可以执行,一个不能执行了
可以执行的:
string sqltext = "update smsmsg set issend=1,isSucess=1,sendMode=1,stime=getdate(),ret=" + result + " where id=" + smstest[k, 0];
SqlCommand cmdsql = new SqlCommand(sqltext, conn);
cmdsql.ExecuteNonQuery();
不能执行的:
string strsql1 = "insert into RecvMsg(Tele,msg,RecvTime) values('" + strmob + "','" + strcontent + "',getdate())";
SqlCommand cmdsql2 = new SqlCommand(strsql1, conn);
cmdsql2.ExecuteNonQuery();
这个是怎么回事情呀?
急呀!!!
...全文
708 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanjie51 2007-06-12
  • 打赏
  • 举报
回复
同意察看数据类型的做法。路过!!
IT_zen 2007-06-12
  • 打赏
  • 举报
回复
你把SQL语句打印出来看看就知道了

print strsql1
greenery 2007-06-11
  • 打赏
  • 举报
回复
某个事务没有结束吗?
看你的代码,好像没有将数据库链接关闭哦。
bote_china 2007-06-11
  • 打赏
  • 举报
回复
sql语句没有问题,看错误提示有点像记录锁定,造成后面的语句无法执行
xudaneng 2007-06-11
  • 打赏
  • 举报
回复
补充一下:
getdate()你可以改为System.DateTime.Now
xudaneng 2007-06-11
  • 打赏
  • 举报
回复
如果RecvTime为“DateTime”类型的话,你需要将代码改为如下:
string strsql1="insert into RecvMsg(Tele,msg,RecvTime)values('"+strmob+"','"+strcontent+"','"+getdate().ToString()+"')";
.......
......
yang528119 2007-06-11
  • 打赏
  • 举报
回复
找到问题了!但是不知道怎么处理
谁帮我看看呀
错误原因:
由于以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值。
连接字符串:
string source = "data source=" + servername.Text + ";Initial Catalog=" + sqlname.Text + ";user id=sa;password=" + sqlpass.Text;
conn = new SqlConnection(source);

错误代码:
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader reader = cmd.ExecuteReader();

string strsql1 = "insert into RecvMsg(Tele,msg,RecvTime) values('" + strmob + "','" + strcontent + "',getdate())";
SqlCommand cmdsql2 = new SqlCommand(strsql1, conn);
cmdsql2.ExecuteNonQuery();

请问我怎么处理呀?
谢谢
急!!!!!!
zhoujianlong 2007-06-11
  • 打赏
  • 举报
回复
报错信息是什么?
wsw0515 2007-06-11
  • 打赏
  • 举报
回复
string strsql1 = "insert into RecvMsg(Tele,msg,RecvTime) values('" + strmob + "','" + strcontent + "','"+getdate()+"')";
SqlCommand cmdsql2 = new SqlCommand(strsql1, conn);
cmdsql2.ExecuteNonQuery();

将getdate()加单引号试试
YUAN168 2007-06-11
  • 打赏
  • 举报
回复
同意sowenxiong(Sowen) 的观点,


设断点,把cmdsql2.commandtext Copy出来到查询分析器中执行,就知道什么问题了。


sowenxiong 2007-06-11
  • 打赏
  • 举报
回复
string strsql1 = "insert into RecvMsg(Tele,msg,RecvTime) values('" + strmob + "','" + strcontent + "',getdate())";
SqlCommand cmdsql2 = new SqlCommand(strsql1, conn);////在这添加断点,监视strsql1
然后复制到查询分析器中执行,就知道什么问题了。
zhnzzy 2007-06-11
  • 打赏
  • 举报
回复
看不出来就不要写成现在的形式,写成参数的形式多简洁!
string strsql1 = "insert into RecvMsg(Tele,msg,RecvTime) values(@strmob,' @strcontent,getdate())";
qiuguijing 2007-06-11
  • 打赏
  • 举报
回复
所要插入数据的类型是否与相应的字段类型相同
guyehanxinlei 2007-06-11
  • 打赏
  • 举报
回复
慢慢调试
ChinaZS 2007-06-11
  • 打赏
  • 举报
回复
不能执行的:
string strsql1 = "insert into RecvMsg(Tele,msg,RecvTime) values('" + strmob + "','" + strcontent + "',getdate())";

SqlCommand cmdsql2 = new SqlCommand(strsql1, conn);//参数还是strsql1呢 - -|

cmdsql2.ExecuteNonQuery();

---------------------------------------------------------------------
yang528119 2007-06-11
  • 打赏
  • 举报
回复
自己顶一下
yang528119 2007-06-11
  • 打赏
  • 举报
回复
是没有查入数据
sowenxiong 2007-06-11
  • 打赏
  • 举报
回复
什么叫可以执行,什么叫不可以执行呢!
是执行时出异常还是执行了没有插入数据呢?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧