我的代码是:
<%@import namespace="system.data"%>
<%@import namespace="system.data.oledb"%><script language="VB" runat=server>sub enter_click(sender as object,e as eventargs)
Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("info.mdb"))
dim strsql as string
strsql="Update admin Set user='" & myname.Text & "',password='" & mypassword.Text & "' Where ID=1 "
dim cmd as new oledbcommand(strsql,conn)
conn.open()
cmd.ExecuteNonQuery()                              
conn.close()
message.text="<p>" & myname.text &",你修改成功."end sub</script><html>
<body>
<center>
<b>修改密码</b>
</center>
<center><form runat=server>
新用户名:<asp:textbox id=myname runat=server/>
<asp:RequiredFieldValidator id="require1" ControlToValidate="myname" ErrorMessage="必须输入新用户名!" runat="server"/><p>
新密码:<asp:textbox id=mypassword textmode=password runat=server/>
<asp:RequiredFieldValidator id="require2" ControlToValidate="mypassword" ErrorMessage="必须输入新用密码!" runat="server"/><p>
<asp:button id="change" text="修改" onclick="enter_click" runat=server/>
<asp:label id="message" runat=server/>
</form>
</center>
</body>
</html>主要是想实现修改用户名和密码.
出错信息如下:
UPDATE 语句的语法错误。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 
异常详细信息: System.Data.OleDb.OleDbException: UPDATE 语句的语法错误。望大家指点,谢谢!!

解决方案 »

  1.   

    知道什么叫做关键字吗?USER就是其中之一你将User=>[User]就可以了,以后设计数据库的时候最好还是不要跟关键字冲突。
    说完,收工,呵呵
      

  2.   

    user和password是保留关键字,改成这样strsql="Update admin Set [user]='" & myname.Text & "',[password]='" & mypassword.Text & "' Where ID=1 "
      

  3.   

    以后出现类似的问题在:cmd.ExecuteNonQuery()处设一个断点,将strsql的值拷出来在查询分析器里执行。这样容易发现问题。
      

  4.   

    不要用关键字来命名字段,万一用了就改成这样strsql="Update admin Set [user]='" & myname.Text & "',[password]='" & mypassword.Text & "' Where ID=1
      

  5.   

    按照上面两位的说法,我改成了:
    strsql="Update admin Set [user]='" & myname.Text & "',[password]='" & mypassword.Text & "' Where ID=1 "
    但是仍然有错误,错误如下:
    至少一个参数没有被指定值。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。其实我知道什么是关键字,不过在这里关键字是ID段
      

  6.   

    多谢大家,但是还是有问题
    我改成
    strsql="Update admin Set [user]='" & myname.Text & "',[password]='" & mypassword.Text & "' Where ID=1 "
    以后
    显示错误:
    至少一个参数没有被指定值。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。请大家指点
      

  7.   

    你的user和password在数据库中是什么类型的啊!
      

  8.   

    strsql="Update admin Set [user]='" & myname.Text & "',[password]='" & mypassword.Text & "' Where ID=1 "在Where前面加一空格
      

  9.   

    strsql="Update admin Set [user]='" & myname.Text & "',password='" & mypassword.Text & "' Where ID=1 "
      

  10.   

    strsql="Update admin Set [user]='" & myname.Text & "',[password]='" & mypassword.Text & "' Where ID=1
      

  11.   

    我改成smallMage(小马哥)说的那样:
    strsql="Update admin Set [user]='" & myname.Text & "',password='" & mypassword.Text & "' Where ID=1 "
    出现相同的错误:
    UPDATE 语句的语法错误。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: UPDATE 语句的语法错误。
      

  12.   

    我改成owenbeckham(梦想成为高手,但只能成为梦想中的高手)说的那样:
    strsql="Update admin Set [user]='" & myname.Text & "',[password]='" & mypassword.Text & "' Where ID=1
    出现符号错误:
    编译错误 
    说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: BC30648: 字符串常数必须以双引号结束。
      

  13.   

    [user]..关键字要加中括号的....这样就OK了啊....字段名一般不要用关键字..
      

  14.   

    我改成ladOnTheBrinkOfRage(愤怒边缘的青年)说的那样:
    strsql="Update admin Set [user]='" & myname.Text & "',[password]='" & mypassword.Text & "' Where ID=1 "在Where的前面也有加空格啊,
    还是不行:
    少一个参数没有被指定值。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。
      

  15.   

    综合大家的意见,我将源代码改成:
    <%@import namespace="system.data"%>
    <%@import namespace="system.data.oledb"%><script language="VB" runat=server>sub enter_click(sender as object,e as eventargs)
    Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("info.mdb"))
    dim strsql as stringstrsql="Update admin Set [user]='" & myname.Text & "',[password]='" & mypassword.Text & "' Where ID=1 "dim cmd as new oledbcommand(strsql,conn)
    conn.open()
    cmd.ExecuteNonQuery()                              
    conn.close()
    message.text="<p>" & myname.text &",你修改成功."end sub</script><html>
    <body>
    <center>
    <b>修改密码</b>
    </center>
    <center><form runat=server>
    新用户名:<asp:textbox id=myname runat=server/>
    <asp:RequiredFieldValidator id="require1" ControlToValidate="myname" ErrorMessage="必须输入新用户名!" runat="server"/><p>
    新密码:<asp:textbox id=mypassword textmode=password runat=server/>
    <asp:RequiredFieldValidator id="require2" ControlToValidate="mypassword" ErrorMessage="必须输入新用密码!" runat="server"/><p>
    <asp:button id="change" text="修改" onclick="enter_click" runat=server/>
    <asp:label id="message" runat=server/>
    </form>
    </center>
    </body>
    </html>
    但是仍然有错误:
    至少一个参数没有被指定值。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。请大家指点
      

  16.   

    帅哥,你保证表里有 user、password、id 这三个字段吗?还有 id 是数字吗?
    帅哥,你十分应该先补习一下数据库啊。
      

  17.   

    1、
    strsql="Update admin Set [user]='" & myname.Text & "',[password]='" & 
    mypassword.Text & "' Where ID=1"2、确认你有操作mdb的权限
    右键MDB文件>>属性>>安全>>添加帐号ASP.NET Machine Account (机器名\ASPNET)>>允许写入>>OK
      

  18.   

    underwater(Never be afraid of bricks),我的数据库如下:
    字段名称  数据类型
    ID         自动编号
    user       文本
    password   文本 xczgb() ,它详细信息里没有的哪句出错
    整个错误信息如下:
    源错误: 
    至少一个参数没有被指定值。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。生成此未处理异常的源代码只能在调试模式中进行编译时显示。若要启用该功能,请执行以下步骤之一,然后请求 URL:1. 在生成错误的文件的顶部添加一个“Debug=true”指令。示例:  <%@ Page Language="C#" Debug="true" %>或者:2. 将以下节添加到应用程序的配置文件中:<configuration>
       <system.web>
           <compilation debug="true"/>
       </system.web>
    </configuration>请注意,第二种方法将使给定应用程序中的所有文件在调试模式下进行编译。第一种方法只使特定文件在调试模式下进行编译。重要事项:以调试模式运行应用程序肯定会引起内存/性能系统开销。在部署到产品方案中之前,应该确保应用程序已禁用调试。  堆栈跟踪: 
    [OleDbException (0x80040e10): 至少一个参数没有被指定值。]
       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() +67
       ASP.changepwd_aspx.enter_click(Object sender, EventArgs e) +240
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
       System.Web.UI.Page.ProcessRequestMain() +1292 
      

  19.   

    swordragon(古道热肠),我右键MDB文件>>属性>>,但是没有安全的选项
      

  20.   

    右键MDB文件>>属性>>,但是没有安全的选项
    ++++++++++文件夹选项 - 表示 - 去掉简易共享
      

  21.   

    sub enter_click(sender as object,e as eventargs)
    Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("info.mdb"))
    dim strsql as string
    strsql="Update admin Set [user]='" & myname.Text & "',[password]='" & mypassword.Text & "' Where ID=1 "在这里阻断程序的运行,把strsql语句打印出来,到Access的查询那里执行一下,看看是否有错误,根据错误判断表结构或者数据结构是否正确,其次判断数据是否正确。dim cmd as new oledbcommand(strsql,conn)
    conn.open()
    cmd.ExecuteNonQuery()                              
    conn.close()
    message.text="<p>" & myname.text &",你修改成功."end sub
      

  22.   

    swordragon(古道热肠) ,
    文件夹选项 - 表示 - 去掉简易共享
    sorry,还是没有安全的选项
      

  23.   

    admin可能也是关键字,所以应该改为
    strsql="Update [admin] Set [user]='" & myname.Text & "',[password]='" &