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>