SQL的update问题,程序不报错但是运行后数据没有变化,求前辈指教。

stringstr1="update[payofftable]set[income]='"+income+"'where[time]=";str1=str1+DateTi... string str1 = "update [payofftable] set [income]='" + income + "'where [time]=";
str1 = str1 + DateTime.Now.Date.ToString("yyyy-M-d");
OleDbCommand cm1 = new OleDbCommand(str1, con);
cm1.ExecuteNonQuery()
我用select语句查过是可以查到有日期为DateTime.Now.Date.ToString("yyyy-M-d")的一行的,但是为什么这里改不了呢?
展开
 我来答
匿名用户
2013-05-15
展开全部
目测可能是少加了个单引号

假设是今天执行的, income = 123 你的 实际执行的语句为:

update [payofftable] set [income]='123' where [time]= 2013-5-15

后面那个 2013-5-15 最后会被按照 int 类型来处理, 变成 2013 减5 减15

正确的写法应该为

update [payofftable] set [income]='123' where [time]= '2013-5-15'
伏震轩08
推荐于2018-04-24 · 超过17用户采纳过TA的回答
知道答主
回答量:92
采纳率:0%
帮助的人:44.5万
展开全部
OleDbCommand 是access数据库的通配符,貌似你SQL语句是SQL Server的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
C不是碳
2013-05-15 · TA获得超过454个赞
知道小有建树答主
回答量:776
采纳率:50%
帮助的人:445万
展开全部
string str1 = "update payofftable set income='" & income & "'where time=";
str1 = str1 + DateTime.Now.Date.ToString("yyyy-M-d");

1、你把+改成&,
2、去掉[]。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式