2016-11-18 22 views
0

我一直在努力創建一個簡單的登錄&註冊表單用於學習/測試目的。我認爲最初這種形式是有效的,但我注意到現在我得到了一個SQL錯誤。我仔細檢查了所有的標籤,一切似乎都匹配了。有沒有人注意到代碼有明顯的錯誤?SQL錯誤,無法註冊用戶,Asp.net使用C#

sql error: System.Data.OleDb.OleDbException (0x80040E14): The INSERT INTO statement contains the following unknown field name: 'txtUsername'. Make sure you have typed the name correctly, and try the operation again. at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteNonQuery() at ASP.register_aspx.ProcessRegistration(Object sender, EventArgs e) in e:\server\user\register.aspx:line 60

<%@ Import Namespace="System.Data" %> 
<%@ Import Namespace="System.Data.OleDb" %> 

<%@ Page Language="C#" Debug="true" %> 

<script runat="server"> 
    void Page_Load() 
    { 

    } 

    void ProcessRegistration(object sender, EventArgs e) 
    { 
     string connstr 
      = ConfigurationManager.ConnectionStrings["northwind"].ConnectionString; 
     string strSQL 
      = "SELECT * from customers "; 

     OleDbConnection conn = new OleDbConnection(connstr); 
     OleDbCommand cmd = new OleDbCommand(strSQL, conn); 
     OleDbDataReader rdr; 

     try 
     { 
      conn.Open(); 
      //OleDbDataAdapter aa = new OleDbDataAdapter(strSQL, conn); 
      //DataSet ds = new DataSet(); 
      //aa.Fill(ds); 
      //rdr = cmd.ExecuteReader(); 
      //if (rdr.HasRows) 
      //{ 
      // lblNameInUse.Text = "Sorry that name is taken."; 
      // lblResult.Text = ""; 
      // rdr.Close(); 
      // return; 
      //} 
     } 
     catch (Exception ex) 
     { 
      lblResult.Text = "error in connecting " + ex.ToString(); 
      return; 
     } 
     // rdr.Close(); 
     string strDate = DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss tt"); 


     strSQL = "Insert into Table1 (txtUsername,txtPassword,FirstName,LastName) Values ('" + txtUsername.Text + "','" + txtPassword.Text + "','" + FirstName.Text + "','" + LastName.Text + "')"; 

</script> 

    <form runat="server"> 
     <h3>Registration Form</h3> 
     <p>All fields required.</p> 
     Your user name:<br /> 
     <asp:TextBox ID="txtUsername" runat="server" /> 
     <asp:Label ID="lblNameInUse" runat="server" /><br /> 
     <asp:RequiredFieldValidator runat="server" 
      ID="okUserName" ControlToValidate="txtUsername" 
      ErrorMessage="Please type a user name." 
      Style="color: Red" /><br /> 
     Email Address: 
     <asp:TextBox ID="txtEmail" runat="server" /> 
     <%-- <asp:RegularExpressionValidator 
      ID="ValidEmail" 
      ControlToValidate="txtEmail" 
      Style="color: Red" 
      ValidationExpression="^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$" 
      ErrorMessage="Please enter a valid e-mail address. " 
      runat="server" />--%><br> 
     Password: 
     <asp:TextBox ID="txtPassword" 
      TextMode="Password" runat="server" /><br> 
     Confirm: 
     <asp:TextBox ID="PasswordConfirm" 
      TextMode="Password" runat="server" /> 
     <asp:CompareValidator 
      ID="ComparePasswords" 
      ControlToValidate="PasswordConfirm" 
      ControlToCompare="txtPassword" 
      Style="color: Red;" 
      ErrorMessage="Passwords did not match. Please check and try again." 
      runat="server" /> 

     <br> 
     <br> 
     First Name: 
     <asp:TextBox ID="FirstName" runat="server" /> 
     <%-- <asp:RegularExpressionValidator 
      ID="ValidFN" 
      ControlToValidate="FirstName" 
      Style="color: Red" 
      ValidationExpression="\w+" 
      ErrorMessage="Please enter your first name." 
      runat="server" />--%><br> 
     Last Name: 
     <asp:TextBox ID="LastName" runat="server" /> 
     <%-- <asp:RegularExpressionValidator 
      ID="ValidLN" 
      ControlToValidate="LastName" 
      Style="color: Red" 
      ValidationExpression="\w+" 
      ErrorMessage="Please enter your last name." 
      runat="server" />--%><br> 


     <asp:Button runat="server" Text="Submit" OnClick="ProcessRegistration" /><br> 

     <p> 
      <asp:Label ID="lblResult" runat="server" /> 
    </form> 
</body> 
</html> 
+0

INSERT INTO語句包含以下未知字段名稱:'txtUsername'。檢查你的表格結構。 –

+0

事實上,您需要在SQL中提供適當的'Table1'列名稱,而不是在'strSQL =「插入到表格1(txtUsername,txtPassword,FirstName,LastName)中使用文本框服務器控件名稱。 –

回答

0

我居然在數據庫中貼錯標籤的列。