2017-03-17 39 views
1
private DateTime currentDate; 
private string strInsert; 
private SqlCommand sqlCmd; 
private SqlConnection hookUp; 

protected void EnterData(object sender, EventArgs e) 
{ 
    currentDate = DateTime.Now; 
    hookUp = new SqlConnection("Server=DESKTOP-BDL7T9A;Database=Vote;" 
         + "Integrated Security=True;");   

    strInsert = " INSERT INTO Supporters (LastName,FirstName,"; 
    strInsert += "E-mail,Donation,DateLastContact)VALUES"; 
    strInsert += "(@LName,@FName,@Em,@Donate,@NowDate)"; 

    sqlCmd = new SqlCommand(strInsert, hookUp); 
    sqlCmd.Parameters.AddWithValue("@LName",LName.Text); 
    sqlCmd.Parameters.AddWithValue("@FName",FName.Text); 
    sqlCmd.Parameters.AddWithValue("@Em",Em.Text); 
    sqlCmd.Parameters.AddWithValue("@Donate",Donate.Text); 
    sqlCmd.Parameters.AddWithValue("@NowDate",currentDate); 

    hookUp.Open(); 
    sqlCmd.ExecuteNonQuery(); 
    hookUp.Close(); 

    Lbl1.Text = "Data has been sent"; 
} 

我試過在Windows身份驗證模式下。當我運行sqlDatabase服務器的代碼顯示了錯誤,當我嘗試提交:無法在Windows身份驗證中插入sql server

附近有語法錯誤 - 「

,當我運行這個程序,並輸入在數據庫連接時的數據它顯示相同的錯誤。

回答

2

您需要使用的字段名方括號(分隔標識符)與-

strInsert += "[E-mail],Donation,DateLastContact)VALUES"; 

延伸閱讀:MSDN Database Identifiers

你可以找到有規則的常規標識符:

  • 嵌入式空格或特殊字符是不允許的。
  • 當標識符在Transact-SQL語句中使用,不遵守這些規則的標識符必須用雙引號或括號分隔。

    還要注意的是,你可以使用逐字字符串跨越字符串字面的幾行代碼:

    strInsert = @"INSERT INTO Supporters 
           (LastName,FirstName,[E-mail],Donation,DateLastContact) 
           VALUES (@LName,@FName,@Em,@Donate,@NowDate)"; 
    
    +0

    謝謝你,對你的幫助,你做我的代碼來看,我幾乎放棄了編碼,但你解決我的問題。 – Ghalan

    相關問題