2011-06-10 61 views
2

我試圖開關來我的SQL查詢到參數查詢,但我不斷收到下面的代碼後顯示一些錯誤:發出查詢

protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
     if (Page.IsValid) 
     { 
      //Define data objects 
      SqlConnection conn; 
      //SqlCommand comm; 
      //Read the connection string from web config 
      string connectionString = ConfigurationManager.ConnectionStrings["clientsConnectionString"].ConnectionString; 
      //Initialize the connection 
      conn = new SqlConnection(connectionString); 


      //Create Command 
      // comm = new SqlCommand(); 
      const string SQL = "insert into request (Surname,[Other Names], mobileno, date, email, faculty, dept, [Registration Number], session, thesis, yearGrad, tellerno, amount, address, question) values (@Surname,[@Other Names],@mobileno,@date, @email, @faculty, @dept, [@Registration Number], @session,@thesis, @yearGrad, @tellerno, @amount, @address,@question)"; 
      SqlCommand cmd = new SqlCommand(SQL, conn); 

      cmd.Parameters.AddWithValue("@Surname", lblSurname.Text); 
      cmd.Parameters.AddWithValue("@[Other Names]", lblOtherNames.Text); 
      cmd.Parameters.AddWithValue("@mobileno", lblPhone.Text); 
      cmd.Parameters.AddWithValue("@date", lblDate.Text); 
      cmd.Parameters.AddWithValue("@email", lblEmail.Text); 
      cmd.Parameters.AddWithValue("@faculty", lblFaculty.Text); 
      cmd.Parameters.AddWithValue("@dept", lblDept.Text); 
      cmd.Parameters.AddWithValue("@[Registration Number]", lblRegNo.Text); 
      cmd.Parameters.AddWithValue("@session", lblSession.Text); 
      cmd.Parameters.AddWithValue("@thesis", lblThesis.Text); 
      cmd.Parameters.AddWithValue("@yearGrad", lblGradYr.Text); 
      cmd.Parameters.AddWithValue("@tellerno", lblTeller.Text); 
      cmd.Parameters.AddWithValue("@amount", lblAmount.Text); 
      cmd.Parameters.AddWithValue("@address", lblAdd.Text); 
      cmd.Parameters.AddWithValue("@question", lblQue.Text); 

      conn.Open(); 

      // verify if the ID entered by the visitor is numeric 
      cmd.ExecuteNonQuery(); 

      conn.Close(); 
      //reload page if query executed succesfully 
      Response.Redirect("thanks.aspx"); 
     } 
    } 

錯誤消息:

'/ TranscriptReloaded'應用程序中的服務器錯誤。 「nvarchar」附近的語法不正確。 必須聲明標量變量「@date」。

+0

如果它解決了您的問題,那麼接受該答案將是習慣性的! (在左邊的勾號,在數字下面!) – bbsimonbb 2016-06-29 13:58:14

回答

3

「date」是一個SQL保留字,所以轉換到SQL可能會有問題。一般來說,你應該避免單獨使用單詞日期作爲列名或參數。

2

就我個人而言,我將首先失去@[two word]變量名稱(其他地方也用作[@two word])。我不知道這是否是原因,但我從未見過這種用法,而且我很可疑。罰款名稱(和表名稱),但變量?不太確定。更改變量名稱是本地代碼,所以不應該導致任何副作用。

+0

tx夥計們,日期不是問題,Marc對變量名稱是如何聲明是正確的,我將它們改爲單個名稱並且它工作。 – Femzy 2011-06-10 17:49:34