ExecuteNonQuery();问题!请高手帮忙!!!

cnwu 2003-10-20 08:31:20
UPDATE 语句的语法错误。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OleDb.OleDbException: UPDATE 语句的语法错误。

源错误:


行 65: string strUpdate = "Update stuname Set nickname='"+nickname+"',stuno='"+stuno+"',realname='"+realname+"',password='"+password+"',repassword='"+repassword+"',dormtel='"+dormtel+"',mobiletel='"+mobiletel+"',Email='"+Email+"',homepage='"+homepage+"' Where stuno='"+stuno+"'";
行 66: OleDbCommand MyComm = new OleDbCommand(strUpdate,MyConn);
行 67: MyComm.ExecuteNonQuery();
行 68: stu.EditItemIndex = -1;
行 69: BindGrid();


源文件: F:\DataX\jxyd\jxupdate.aspx 行: 67

堆栈跟踪:


[OleDbException (0x80040e14): UPDATE 语句的语法错误。]
System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) +41
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +174
System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +92
System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +65
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +112
System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +66
ASP.jxupdate_aspx.DataGrid_UpdateCommand(Object sender, DataGridCommandEventArgs e) in F:\DataX\jxyd\jxupdate.aspx:67
System.Web.UI.WebControls.DataGrid.OnUpdateCommand(DataGridCommandEventArgs e) +109
System.Web.UI.WebControls.DataGrid.OnBubbleEvent(Object source, EventArgs e) +507
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
System.Web.UI.WebControls.DataGridItem.OnBubbleEvent(Object source, EventArgs e) +106
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs e) +121
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +115
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1258


//////////////////////////////////////////////////////////////////////

----------下面是程序代码:--------------
<%@ Register TagPrefix="aspcopy" TagName="copy" Src="copy.ascx" %>
<% @ Page Language="C#" Debug="true" %>
<% @ Import Namespace="System.Data" %>
<% @ Import Namespace="System.Data.OleDb" %>
<Script Language="C#" Runat="Server">
OleDbConnection MyConn;
public void Page_Load(Object src,EventArgs e)
{
//连接语句
string MyConnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath("person.mdb");
MyConn = new OleDbConnection(MyConnString);
MyConn.Open();
if(!Page.IsPostBack)
{
BindGrid();
}
}
ICollection CreateTable()
{
string strSel = "select * from stu";
DataSet ds = new DataSet();
OleDbDataAdapter MyAdapter = new OleDbDataAdapter(strSel,MyConn);
MyAdapter.Fill(ds,"stu");
return ds.Tables["stu"].DefaultView;
}
public void BindGrid()
{
stu.DataSource = CreateTable();
stu.DataBind();
}
public void DataGrid_PageChanged(Object sender,DataGridPageChangedEventArgs e)
{
stu.CurrentPageIndex = e.NewPageIndex;
BindGrid();
}
//处理Edit命令
public void DataGrid_EditCommand(Object sender,DataGridCommandEventArgs e)
{
stu.EditItemIndex = e.Item.ItemIndex;
BindGrid();
}

//处理Cancel命令
public void DataGrid_CancelCommand(Object sender,DataGridCommandEventArgs e)
{
stu.EditItemIndex = -1;
BindGrid();
}

//处理Update命令-----------------------------------------------------
public void DataGrid_UpdateCommand(Object sender,DataGridCommandEventArgs e)
{
//更新数据库中的信息
string nickname =((TextBox)e.Item.Cells[1].Controls[0]).Text;
string stuno = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
string realname = ((TextBox)e.Item.Cells[3].Controls[0]).Text;
string password = ((TextBox)e.Item.Cells[4].Controls[0]).Text;
string repassword =((TextBox)e.Item.Cells[5].Controls[0]).Text;
string dormtel = ((TextBox)e.Item.Cells[6].Controls[0]).Text;
string mobiletel = ((TextBox)e.Item.Cells[7].Controls[0]).Text;
string Email = ((TextBox)e.Item.Cells[8].Controls[0]).Text;
string homepage = ((TextBox)e.Item.Cells[9].Controls[0]).Text;

//更新数据库中的数据
string strUpdate = "Update stuname Set nickname='"+nickname+"',stuno='"+stuno+"',realname='"+realname+"',password='"+password+"',repassword='"+repassword+"',dormtel='"+dormtel+"',mobiletel='"+mobiletel+"',Email='"+Email+"',homepage='"+homepage+"' Where stuno='"+stuno+"'";
OleDbCommand MyComm = new OleDbCommand(strUpdate,MyConn);
MyComm.ExecuteNonQuery();
stu.EditItemIndex = -1;
BindGrid();

}

</script>
<html>
<head>
<title></title>
</head>
<body>
<form runat="server">
<center>
-------数据在线编辑---------
<asp:DataGrid id="stu" runat="server"
width="80%"
BorderColor="black"
AllowPaging="True"
PageSize="15"
PagerStyle-Mode="NumericPages"
OnPageIndexChanged="DataGrid_PageChanged"
HeaderStyle-BackColor="#C6C3C6"
AlternatingItemStyle-BackColor="#eeeeee"
AutoGenerateColumns="False"
Font-Name="宋体" Font-Size="10pt"
OnEditCommand="DataGrid_EditCommand"
OnUpdateCommand="DataGrid_UpdateCommand"
OnCancelCommand="DataGrid_CancelCommand"
>
<PagerStyle horizontalalign="Right" backcolor="#C6C3C6" mode="NumericPages" font-size="smaller"></PagerStyle>
<Columns>
<asp:EditCommandColumn HeaderText="操作区"
EditText="编辑"
UpdateText="更新"
CancelText="取消"
ButtonType="PushButton"
/>
<asp:BoundColumn HeaderText="昵称" DataField="nickname" />
<asp:BoundColumn HeaderText="学号" DataField="stuno" />
<asp:BoundColumn HeaderText="真实姓名" DataField="realname" />
<asp:BoundColumn HeaderText="密码" DataField="password" />
<asp:BoundColumn HeaderText="重复密码" DataField="repassword" />
<asp:BoundColumn HeaderText="宿舍电话" DataField="dormtel" />
<asp:BoundColumn HeaderText="移动电话" DataField="mobiletel" />
<asp:BoundColumn HeaderText="电子邮件" DataField="Email" />
<asp:BoundColumn HeaderText="个人主页" DataField="homepage" />
</Columns>
</asp:DataGrid>
</center>
</form>
<aspcopy:copy id="UserControl5" runat="server"></aspcopy:copy>
</body>
</html>












...全文
71 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
rgbcn 2003-10-25
  • 打赏
  • 举报
回复
ok
cnwu 2003-10-25
  • 打赏
  • 举报
回复
谢谢诸位!问题已经解决,特别感谢!webdiyer(陕北吴旗娃)的帮助!!!
webdiyer 2003-10-20
  • 打赏
  • 举报
回复
update语句中的 password 是sql关键词,用[]括起来试试。
ljycn 2003-10-20
  • 打赏
  • 举报
回复
我建议跟踪一下吧
try{
string updat------

}
catch(Exception ex)
{
response.write(ex.message)
}
bpy 2003-10-20
  • 打赏
  • 举报
回复
估计是SQL语句有问题:
在SQL SERVER 企业管理器里(或查询分析器里),先执行你从WEB 传递的SQL 语句,
直到正确,
一般正确了,WEB 就 OK 了
asam2183 2003-10-20
  • 打赏
  • 举报
回复
估计是SQL语句有问题
是否有主键
CMIC 2003-10-20
  • 打赏
  • 举报
回复
语法好像没错,是不是在文本框里输入了关键字,或"'"等,建议还是使用DataSet,
或用strUpdate .Replace("'","''")函数试试。
cnwu 2003-10-20
  • 打赏
  • 举报
回复
以上没有问题的!
我的person库的stu表中九个字段其中9个字段都为必填字段,两个密码为数值型,其余为字符型;不知道这个地方有没有问题,我试着改了一些东西还是没有用啊!
请大家帮忙!!我很郁闷的!搞了头都大了!!!
rgbcn 2003-10-20
  • 打赏
  • 举报
回复
你跟踪调试一下,就知道什么问题了。
孟子E章 2003-10-20
  • 打赏
  • 举报
回复
检查数据库文件和所在的目录是否允许匿名可修改
cnwu 2003-10-20
  • 打赏
  • 举报
回复
up!!!

62,041

社区成员

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

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

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

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