vs.net的通过datagride控件更新SQL里的数据是不是SQL里德字段不能用汉字啊

[复制链接]
查看11 | 回复3 | 2010-7-19 09:54:45 | 显示全部楼层 |阅读模式
我把Sql字段改成了汉字就更新不成功!换成字母就可以,但是我想让显示的是汉字。我的后台更新部分代码如下:
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
SqlConnection myconnection=new SqlConnection("server=PC-201004011603;uid=sa;pwd=;database=test");
string updatestr = "";
updatestr+="name='"+((TextBox)e.Item.Cells[1].Controls[0]).Text+"'";//其中((TextBox)e.Item.Cells[2].Controls[0])为取得当前行的第3个单元格也就是文本框了。把它的内容赋给字段
updatestr += ",age='" + ((TextBox)e.Item.Cells[2].Controls[0]).Text + "'";

string updatecomm = "update info set " + updatestr + "where name='" + DataGrid1.DataKeys[e.Item.ItemIndex] + "'";
SqlCommand myupdate = new SqlCommand(updatecomm, myconnection);
try
{

myconnection.Open();

myupdate.ExecuteNonQuery();

Response.Write("");

this.BindGrid();
}
catch
{

Response.Write("");
}
finally
{

myconnection.Close();
}
DataBind();
}
我把name,age都改成汉字(当然数据库里的字段也该了),则就更新不成功,我调试了一下应该是更新后写不到数据库里,因为只执行到try语句myupdate.ExecuteNonQuery();然后就执行catch了。
高手指点,如果不方便回答,加我QQ:447665355我基本每天9:00-11:4014:30-22:00在线。谢谢啦!

回复

使用道具 举报

千问 | 2010-7-19 09:54:45 | 显示全部楼层
你为什么不直接有Catch捕获异常呢?这们至少可以知道你的错是的一个方向,然后修改,就简单的多了。至于你说的修改成汉字就不能更新,这个应该不会发生,很有可能是你数据库字符串的长度不够,一个汉字占有两个字节,你再仔细看看,有问题可以直接HI我
回复

使用道具 举报

千问 | 2010-7-19 09:54:45 | 显示全部楼层
string updatecomm = "update info set " + updatestr + "where name='" + DataGrid1.DataKeys[e.Item.ItemIndex] + "'";SQL语句有问题,update table_name set field = values如果 updatestr 是值的
回复

使用道具 举报

千问 | 2010-7-19 09:54:45 | 显示全部楼层
如果是sql server 把字段用中括号[] 扩起来
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行