数据更新问题,请达人解决

iscooller 2011-07-20 10:49:08
类似csdn发表话题一样,输入的内容量比较大,大概有几千字,用

string sqlstr = "update sb_other set table='"
+ Request.Params["T_7"] + "' where sb_uid='" + Session["sb_uid"].ToString() + "'";

sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();

更新时候,机器比较慢,最后跳出超时。请问如何解决啊
...全文
66 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
暖枫无敌 2011-07-21
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 iscooller 的回复:]

难道八千字符?四千汉字?
[/Quote]

你字段类型是什么????

你应该用text类型的
haojuntu 2011-07-20
  • 打赏
  • 举报
回复
像这个Session["sb_uid"].ToString() 如何是在多处使用,最好提供一个基类。
StringBuilder sb = new StringBuilder();
sb.Append("update sb_other set table='");
StringBuilde主要是拼接字符串,数据量大的情况下,效率比较明显。
iscooller 2011-07-20
  • 打赏
  • 举报
回复
难道八千字符?四千汉字?
iscooller 2011-07-20
  • 打赏
  • 举报
回复
将截断字符串或二进制数据。语句已终止! 数据库管理工具里面删除数据是出现这样 是不是意味超过最大长度了? ntext 最大才3,4千字?
  • 打赏
  • 举报
回复
SqlCommand + SqlParameter
你上面其实还是纯脚本方式执行,没有用到命令传参
  • 打赏
  • 举报
回复
数据库中有多少条纪录?Request.Params["T_7"]到底来自哪里?尽量不要用这种笼统的方式,它会依次从QueryString Form ServerVariables Cookies中去取
就那么一条语句执行都超时,怀疑你的Request.Params["T_7"]包含SQL敏感字符导致执行时出现异常,用SqlCommand应该会很快,自己搜一下
暖枫无敌 2011-07-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 iscooller 的回复:]

我也是用文本编辑器保存的 几千字就很慢不知道为什么呀
[/Quote]

看来你得优化SQL语句,检查数据库连接资源,尽量少占用数据库连接资源,不用的及时释放等方面着手优化吧。
iscooller 2011-07-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 aspwebchh 的回复:]
不要直接用 string,用 stringbuilder拼接试试

写入数据库,几万个字也不会很慢啊要,何况几千个了
[/Quote] 能给点代码么?
挨踢直男 2011-07-20
  • 打赏
  • 举报
回复
不要直接用 string,用 stringbuilder拼接试试

写入数据库,几万个字也不会很慢啊要,何况几千个了
iscooller 2011-07-20
  • 打赏
  • 举报
回复
是不是update是先删除数据然后再插入的 这样会比较慢的?
iscooller 2011-07-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wxr0323 的回复:]
引用 5 楼 iscooller 的回复:

我也是用文本编辑器保存的 几千字就很慢不知道为什么呀

有特殊字符没?
html标签
[/Quote]

肯定会有 因为用了文本编辑器肯定有会有此类数据
子夜__ 2011-07-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 iscooller 的回复:]

我也是用文本编辑器保存的 几千字就很慢不知道为什么呀
[/Quote]
有特殊字符没?
html标签
iscooller 2011-07-20
  • 打赏
  • 举报
回复
我也是用文本编辑器保存的 几千字就很慢不知道为什么呀
暖枫无敌 2011-07-20
  • 打赏
  • 举报
回复

string sqlstr = "update sb_other set table='"
+ Request.Params["T_7"] + "' where sb_uid='" + Session["sb_uid"].ToString() + "'";

sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
//设置超时时间
sqlcon.Timeout = 7200;
sqlcom.CommandTimeout = 7200;
sqlcom.ExecuteNonQuery();
sqlcon.Close();


不过几千字就非常慢啊,不能吧?我们有时用文本编辑器保存从word里拷贝过来的大段内容,几秒搞定,最多10秒就OK了。

iscooller 2011-07-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caozhy 的回复:]
限制下字数,既然像csdn一样,你也知道,csdn最多输入1万字。

另外使用存储过程,而不是拼接sql。
[/Quote]
能发点代码么?
子夜__ 2011-07-20
  • 打赏
  • 举报
回复
同时也设置一下超时时间 SqlCommand Timeout
threenewbee 2011-07-20
  • 打赏
  • 举报
回复
限制下字数,既然像csdn一样,你也知道,csdn最多输入1万字。

另外使用存储过程,而不是拼接sql。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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