初学,50分问个小问题:数据无法更新

arthljoo 2005-10-13 07:57:28
private void btnEdit_Click(object sender, System.EventArgs e)
{
SqlConnection MyConnection = new SqlConnection("server = server\\lj;database=fujimi;user id=sa;password=lujia");
string UpdateCommand = "update News set news_name = '@nName',news_Author='@nAuthor',news_Ptime='@nPtime',news_content='@nContent' where news_Name=@name";
SqlCommand MyCommand = new SqlCommand(UpdateCommand,MyConnection);
MyCommand.Parameters.Add("@nName", SqlDbType.Char).Value = news_txtName.Text;
MyCommand.Parameters.Add("@nAuthor", SqlDbType.Char).Value = news_txtAuthor.Text;
MyCommand.Parameters.Add("@nPtime", SqlDbType.Char).Value = news_txtPtime.Text;
MyCommand.Parameters.Add("@ncontent", SqlDbType.Text).Value = news_txtcontent.Text;
MyConnection.Open();
try
{
MyCommand.ExecuteNonQuery();
Message.Text = "修改成功";
}
catch (SqlException)
{
Message.Text = "错误: 无法修改数据纪录";
}

MyConnection.Close();
}

测试时,总是无法更新。
还一个问题,我用FileName = Request.PhysicalApplicationPath + "test.doc"; 显示txt正常,但显示word就是乱码??求解。谢谢
...全文
173 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
hp44 2005-10-21
  • 打赏
  • 举报
回复
@...是变量,干嘛还要用引号?去掉
arthljoo 2005-10-16
  • 打赏
  • 举报
回复
要不哪位前辈写个能用的发我邮箱我研究下:arth_jj@163.com
辉说慧语 2005-10-15
  • 打赏
  • 举报
回复
Update 里的‘’去掉//

没有用过这个重载方法

平常使用的涉及到参数与表字段的关联
fans007 2005-10-15
  • 打赏
  • 举报
回复
不会吧~arthljoo(学习学习再学习),你看看能不能产生异常,最好把异常信息贴上来看看~
arthljoo 2005-10-14
  • 打赏
  • 举报
回复
..........
arthljoo 2005-10-14
  • 打赏
  • 举报
回复
去掉引号了不行。 用ywfily(心妍)写发也不行
ywfily 2005-10-13
  • 打赏
  • 举报
回复
确实我的意思也是不需要add那些参数,直接把值代进去就可以了。
gsp365 2005-10-13
  • 打赏
  • 举报
回复
另外少了
@name";的Command.Parameters
gsp365 2005-10-13
  • 打赏
  • 举报
回复
MyCommand.Parameters.Add("@ncontent", SqlDbType.Text).Value = news_txtcontent.Text;
改成:
MyCommand.Parameters.Add("@ncontent", SqlDbType.Char).Value = news_txtcontent.Text;

fans007 2005-10-13
  • 打赏
  • 举报
回复
ywfily(心妍) 的写法也可以,关键是你使用了SQL参数,而且参数带了单引号,个人感觉问题在这里~
desailly 2005-10-13
  • 打赏
  • 举报
回复
string UpdateCommand = "update News set news_name = '@nName',news_Author='@nAuthor',news_Ptime='@nPtime',news_content='@nContent' where news_Name=@name";
语句写错了,@nName是参数,你要用SqlCommand对象对控件进行取值
sqlcmdInsertInfor.Parameters.Add(@aaa参数名,System.Data.SqlTypes.SqlString数据类型,列长度,列源的名称);然后sqlcmdInsertInfor.Parameters["@aaa"]=txtbox.text;
ywfily 2005-10-13
  • 打赏
  • 举报
回复
我觉得你的语句应该这样写:
string UpdateCommand = "update News set news_name ,news_Author,news_Ptime,news_content values('"+news_txtName.Text+"','"+news_txtAuthor.Text+"','"+news_txtPtime.Text+"','"+news_txtcontent.Text+"')
where news_Name='"+news_txtName.Text+"'"
fans007 2005-10-13
  • 打赏
  • 举报
回复
我说错了别骂我呀~希望大家给我提出来改正噢~
fans007 2005-10-13
  • 打赏
  • 举报
回复
SQL语言变量不用于编程语言变量,不需要带单引号的~我不知道我说的对不对~
arthljoo,你为什么不设置断点调试一下呢?
ywfily 2005-10-13
  • 打赏
  • 举报
回复
update 语句是否写错了,应该是update tablename set colnum_names values('','',''……)
fans007 2005-10-13
  • 打赏
  • 举报
回复
string UpdateCommand = "update News set news_name = '@nName',news_Author='@nAuthor',news_Ptime='@nPtime',news_content='@nContent' where news_Name=@name";

SQL语句有错误吧!你把参数的单引号去点试试!那是SQL参数,不是变量~
arthljoo 2005-10-13
  • 打赏
  • 举报
回复
是这样。我还做了添加,删除2个button。都可以实现。就这个..不行。
moqijun 2005-10-13
  • 打赏
  • 举报
回复
跟踪一下Catch到的错误,会不会是数据库没连上,或产生的Update语句有问题。

62,041

社区成员

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

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

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

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