社区
C#
帖子详情
数据添加成功,但是数据库数据没有更新是怎么回事?急!急!
hxianling
2009-08-02 04:46:16
数据添加成功,但是数据库数据没有更新是怎么回事?急!急!请高手告诉我一下。
...全文
1744
36
打赏
收藏
数据添加成功,但是数据库数据没有更新是怎么回事?急!急!
数据添加成功,但是数据库数据没有更新是怎么回事?急!急!请高手告诉我一下。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
36 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhangtianrong
2011-01-06
打赏
举报
回复
我也遇到这们的问题为什么 我在数据访问层添加数据都能成功,调试继点都能进入到 int result = command.ExecuteNonQuery()这句话;而且返回
的result也有值,但是在数据库的表没有添加数据,是怎么回事,急,急
flyerwing
2009-08-06
打赏
举报
回复
scmd.ExecuteNonQuery()>0
才对的!
JF
chenruoyun
2009-08-06
打赏
举报
回复
int rows=scmd.ExecuteNonQuery();
if(rows>0)
{
Response.Write(" <script language='javascript'>alert('添加成功!');
}
else
{
Response.Write(" <script language='javascript'>alert('添加失败.!');
}
lizheng19860824
2009-08-06
打赏
举报
回复
你这代码不管执行成功与否都会弹出“添加成功”窗口的,在执行的时候加个判断语句吧
firesea
2009-08-06
打赏
举报
回复
你没有明白 sp1234 的意思,他是说,你这样写代码是有漏洞的,可以被sql注入。你是用拼串的方式写的sql语句,这样要是人家也输入一个你sql语句里面的符号,这样你的sql语句就不能正常执行了。你应该是用参数化的方法传递参数,这样可以避免sql注入的。至于你的问题嘛,如果像你说的能在gradview里面取到你更新的结果,那说明已经插入成功了,你把表关掉,重新打开下(或者刷新表)应该就有你要的数据了。
hxianling
2009-08-06
打赏
举报
回复
哪位高手解决过这样的问题的加我QQ帮我解决一下,谢谢!!我的QQ:568223360
hxianling
2009-08-06
打赏
举报
回复
[Quote=引用 17 楼 sp1234 的回复:]
引用 6 楼 hxianling 的回复:
引用 4 楼 haha0308 的回复:
能不能把你的代码贴出来啊,这样不好结决啊。
if (kong())
{
//定义变量
string yy, aa, bb, cc, dd, ee, ff, gg, hh, ii;
//aa = this.TextBox1.Text;//riqi
yy = this.TextBox1.Text;//rukuID
aa =DateTime.Now.ToString("yyyy-MM-dd");
bb = this.TextBox2.Text;//danhao
cc = this.TextBox3.Text;//mingcheng
dd = this.TextBox4.Text;//shuliang
ee = this.TextBox5.Text;//jinhuojia
ff = this.TextBox6.Text;//zonge
gg = this.TextBox7.Text;//beizhu
hh = this.DropDownList1.Text;
ii = this.DropDownList2.Text;
SqlConnection scon = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
scon.Open();
SqlCommand scmd = new SqlCommand("insert into ruku(rukuID,rukuDate,rukuBianma,huoName,shuliang,jinjia,zhonge,beizhu,ghdw,jingbanren) values ('"+ yy + "','" + aa + "','" + bb + "','" + cc + "','" + dd + "','" + ee + "','" + ff + "','" + gg + "','" + hh + "','" + ii + "')", scon);
scmd.ExecuteNonQuery();
scmd.Dispose();
scon.Close();
Response.Write(" <script language='javascript'>alert('添加成功!'); </script>");
Server.Transfer("rukujetj.aspx");
}
像这样的代码,甚至不用测试,我这里都肯定都看不过去。很简单,如果客户打入单引号,例如TextBox7值中有单引号,难道你的SQL就要报销?用户可以轻易地写SQL注入代码,随便找个特殊输入测试数据就能发现数据库完全错误。
[/Quote]你这么说,我看你是不是不明白我说出现的问题呢?既然都可以显示在gridview里面,为什么说数据库完全错误呢?如果说数据库有误,那代码怎么可以执行?
nsl204
2009-08-06
打赏
举报
回复
我估计你这里应该是数据的类型和数据库不一致,或者是数据库的中字段
的长度不够长。
你所谓的添加成功是执行了Response.Write(" <script language='javascript'>alert('添加成功!'); </script>"); 这个代码吧?
你可以试试这个
try {
int i=scmd.ExecuteNonQuery();
if(i>0)
{
Response.Write(" <script language='javascript'>alert('添加成功!'); </script>");
}
else
{
Response.Write(" <script language='javascript'>alert('添加失败!'); </script>");
}
}
catch(Exception ex)
{
string err=ex.Message();//如果出现异常,看看err的值
}
scmd.Dispose();
scon.Close();
hxianling
2009-08-06
打赏
举报
回复
都没有try {}catrh(){},都没有判断变量,怎么就知道添加成功了?
如果数据库没有更新,那么肯定就是没添加成功
try {}catrh(){},这个只是捕捉异常而已,到底用不用跟数据库更新有问题吗?添加不成功,怎么可以在gridview里面显示?现在最主要的问题是数据库没有更新,而不是捕捉异常!!你明白我所问的问题吗?
javakiki
2009-08-06
打赏
举报
回复
都没有try {}catrh(){},都没有判断变量,怎么就知道添加成功了?
如果数据库没有更新,那么肯定就是没添加成功
hxianling
2009-08-06
打赏
举报
回复
firesea这位高手我知道你会解决这个问题,但是我按你说的去做了,数据库还是没有显示我新的数据,能否加我的QQ帮我解决一下?谢谢了!我的QQ:568223360
ruanwei1987
2009-08-06
打赏
举报
回复
引用一下:
“连接未关闭,连接的当前状态为已打开”C#的问题。
我遇见过这样的问题 你可以看看上一个窗体或者别的窗体
有没有关闭
如果没有关闭的话 这段代码也会出现异常的
加油!!!
Lizzy莲
2009-08-06
打赏
举报
回复
[Quote=引用 26 楼 hxianling 的回复:]
引用 23 楼 chenruoyun 的回复:
int rows=scmd.ExecuteNonQuery();
if(rows>0)
{
Response.Write(" <script language='javascript'>alert('添加成功!');
}
else
{
Response.Write(" <script language='javascript'>alert('添加失败.!');
}
我添加了这些代码进去,出现这样的错误提示ExecuteNonQuery 要求已打开且可用的连接。连接的当前状态为已关闭。怎么解决呢?
[/Quote]
你是不是把
scmd.Dispose();
scon.Close();
放在上面代码前面了?
li1229363
2009-08-06
打赏
举报
回复
连基本安全都没有做。很好很强大
zzxap
2009-08-06
打赏
举报
回复
都没有判断一下数据库变量就“添加成功”好搞笑
icbc_ljt
2009-08-06
打赏
举报
回复
这个简单,数据层操作时先判断连接有没打开,没打开再打开连接。
hxianling
2009-08-06
打赏
举报
回复
[Quote=引用 23 楼 chenruoyun 的回复:]
int rows=scmd.ExecuteNonQuery();
if(rows>0)
{
Response.Write(" <script language='javascript'>alert('添加成功!');
}
else
{
Response.Write(" <script language='javascript'>alert('添加失败.!');
}
[/Quote]我添加了这些代码进去,出现这样的错误提示ExecuteNonQuery 要求已打开且可用的连接。连接的当前状态为已关闭。怎么解决呢?
hxianling
2009-08-06
打赏
举报
回复
[Quote=引用 21 楼 firesea 的回复:]
你没有明白 sp1234 的意思,他是说,你这样写代码是有漏洞的,可以被sql注入。你是用拼串的方式写的sql语句,这样要是人家也输入一个你sql语句里面的符号,这样你的sql语句就不能正常执行了。你应该是用参数化的方法传递参数,这样可以避免sql注入的。至于你的问题嘛,如果像你说的能在gradview里面取到你更新的结果,那说明已经插入成功了,你把表关掉,重新打开下(或者刷新表)应该就有你要的数¡
[/Quote]您说的很好,这样子说还差不多,代码漏洞是写得还不全面,而不是说代码全部是错误的!不要那么肯定的去说别人都是错的,毕竟别人也是思考过的,编写代码过程是难免出现问题,但是遇到问题要想办法去解决,解决得的办法才可以去下最后的结论。
newdigitime
2009-08-03
打赏
举报
回复
实际上数据已更新成功,你需要先显式的将conn.close/=nothing,然后再conn.open
,再查询数据库是否更新.
以专业开发人员为伍
2009-08-02
打赏
举报
回复
[Quote=引用 6 楼 hxianling 的回复:]
引用 4 楼 haha0308 的回复:
能不能把你的代码贴出来啊,这样不好结决啊。
if (kong())
{
//定义变量
string yy, aa, bb, cc, dd, ee, ff, gg, hh, ii;
//aa = this.TextBox1.Text;//riqi
yy = this.TextBox1.Text;//rukuID
aa =DateTime.Now.ToString("yyyy-MM-dd");
bb = this.TextBox2.Text;//danhao
cc = this.TextBox3.Text;//mingcheng
dd = this.TextBox4.Text;//shuliang
ee = this.TextBox5.Text;//jinhuojia
ff = this.TextBox6.Text;//zonge
gg = this.TextBox7.Text;//beizhu
hh = this.DropDownList1.Text;
ii = this.DropDownList2.Text;
SqlConnection scon = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
scon.Open();
SqlCommand scmd = new SqlCommand("insert into ruku(rukuID,rukuDate,rukuBianma,huoName,shuliang,jinjia,zhonge,beizhu,ghdw,jingbanren) values ('"+ yy + "','" + aa + "','" + bb + "','" + cc + "','" + dd + "','" + ee + "','" + ff + "','" + gg + "','" + hh + "','" + ii + "')", scon);
scmd.ExecuteNonQuery();
scmd.Dispose();
scon.Close();
Response.Write(" <script language='javascript'>alert('添加成功!'); </script>");
Server.Transfer("rukujetj.aspx");
}
[/Quote]
像这样的代码,甚至不用测试,我这里都肯定都看不过去。很简单,如果客户打入单引号,例如TextBox7值中有单引号,难道你的SQL就要报销?用户可以轻易地写SQL注入代码,随便找个特殊输入测试数据就能发现数据库完全错误。
加载更多回复(16)
mybatis中显示
更新
数据
成功
,控制台显示
成功
,
数据
库
数据
却
没有
修改
@mybatis中显示
更新
数据
成功
,控制台显示
成功
,
数据
库
数据
却
没有
修改 问题分析 查看控制台输出语句,控制台会打印
更新
方法的日志,显示一条
更新
语句
成功
等信息。但是查看
数据
库
是
没有
任何变化的。 原因 经过排查这...
MyBatis插入
数据
运行
成功
但是
数据
库
没有
数据
问题解决方案——记录自己的小错误
MyBatis插入
数据
运行
成功
但是
数据
库
没有
数据
问题
向
数据
库
插入
数据
没有
报错,但是
数据
库
里面并
没有
数据
前言:今天通过Durid操作
数据
库
的时候,在Dao 层实现增删改查都
没有
报错,但是
数据
库
里面一直
没有
数据
。郁闷了好久… 结果既然是,Jdbc 配置文件Url 那里跟的库不是我要操作的那个库。 这个时候检查一下URL那里,当...
mybatis插入
数据
到
数据
库
成功
,
数据
库
却
没有
数据
mybatis插入
数据
到
数据
库
成功
,
数据
库
却
没有
数据
急
急
急
!
更新
数据
库
操作 ,
数据
库
没有
发生变化
在
更新
页面提交的
数据
传到controller 执行updaet 方法操作
数据
库
控制台打印
更新
没有
出现问题 . 在控制台输出
更新
页面提交的
数据
有接收到 , 也执行了update 方法
没有
出现问题
更新
页面提交后返回列表页面发现
没有
被...
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章