2011-06-23 100 views
0

我在下面的截圖中看到類似的錯誤。我的問題是;當我試圖寫信給文本框內的這些信息時,這給了我錯誤。在哪裏我錯了? 順便說一句,我使用的SQL Server Express 2008 enter image description hereSqlException未處理

private void btnprnsave_Click(object sender, EventArgs e) 
    {   
     SqlConnection conn = DBConfigs.DataCon(); 
     SqlCommand record = new SqlCommand ("insert into dbo.PersonalInformationTable (PersonalName,PersonalSurname,PersonalEGN) values ("+txtPrnName.Text+","+txtPrnSurName.Text+","+txtPrnEgn.Text+")", conn); 
     record.ExecuteNonQuery(); 
     conn.Close(); 
    } 
+2

昨天你在DBA.SE上問了同樣的問題。 http://dba.stackexchange.com/q/3433/630。您已經有針對您的問題的解決方案,以及「最佳實踐」-1 – gbn

回答

1
  1. 格式正確的SQL

  2. Chekc如果數據庫文件存在(約tesxtual值或使用的參數單引號)。

  3. 不要將數據庫文件與SQL Server Management Studio Express同時附加,因爲無法將相同的數據庫文件附加到兩次到兩個不同的SQL Server(Express)實例。

  4. 請務必關閉數據庫連接。使用using語句可以實現這一點,無論代碼塊如何保留(異常或正常的程序流),Dispose()方法都會被調用。這將始終關閉連接,並且避免了連接泄漏。

0

你需要把周圍的文本值單引號中查詢。更好;使用參數...
你得到的異常可能是由別的原因造成的,但是查詢本身並不正確,如上所述...

1

這有點難以分辨,但看起來你需要在insert語句中轉義您的值。

"insert into dbo.PersonalInformationTable (PersonalName,PersonalSurname,PersonalEGN) values ('"+txtPrnName.Text+"','"+txtPrnSurName.Text+"','"+txtPrnEgn.Text+"')", conn);