2013-03-16 120 views
1

我想使用參數向數據庫插入一些信息,但不是添加參數值,而是將參數名稱添加到數據庫。 這裏是我的代碼:爲什麼參數在我的INSERT語句中不起作用?

try {    
    vSqlCeConnection.Open(); 
     SqlCeCommand vCommand = new SqlCeCommand(@"INSERT INTO BusinessCards 
           ( CalligraphyNeeded , Comments , NameEnglish 
           , JobTitleEnglish , NameArabic , JobTitleArabic 
           ,BOBOX , HomePhoneNumber 
           , FAXNumber , OfficePhoneNumber , MobileNumber , Email) 
         VALUES 
           ( @CalligraphyNeeded, '@Comments' ,'@NameEnglish' 
           ,'@JobTitleEnglish' ,'@NameArabic' ,'@JobTitleArabic' 
           ,'@BOBOX' ,'@HomePhoneNumber' 
           ,'@FAXNumber' ,'@OfficePhoneNumber' ,'@MobileNumber' 
           ,'@Email' ) " , vSqlCeConnection); 




      if (checkBoxCalligraphy.Checked == true) 
      { 
       vCommand.Parameters.AddWithValue("@CalligraphyNeeded", 1); 
      } 
      else 
      { 
       vCommand.Parameters.AddWithValue("@CalligraphyNeeded", 0); 
      } 
      vCommand.Parameters.AddWithValue("@Comments", richTextBoxComments.Text); 
      vCommand.Parameters.AddWithValue("@NameEnglish", textBoxEnglishName.Text);    vCommand.Parameters.AddWithValue("@JobTitleEnglish",richTextBoxEnglishJobTitle.Text); 
      vCommand.Parameters.AddWithValue("@NameArabic", textBoxArabicName.Text + " ff"); 
      vCommand.Parameters.AddWithValue("@JobTitleArabic", richTextBoxArabicJobTiltle.Text + " ff"); 
      vCommand.Parameters.AddWithValue("@BOBOX", textBoxPOBox.Text + " ff"); 
      vCommand.Parameters.AddWithValue("@HomePhoneNumber", textBoxHomePhone.Text + " ff"); 
      vCommand.Parameters.AddWithValue("@FAXNumber", textBoxFax.Text + " ff"); 
      vCommand.Parameters.AddWithValue("@OfficePhoneNumber", textBoxOfficePhone.Text + " ff"); 
      vCommand.Parameters.AddWithValue("@MobileNumber", textBoxMobile.Text + " ff"); 
      vCommand.Parameters.AddWithValue("@Email", textBoxEmail.Text + " ff"); 
      MessageBox.Show(vCommand.CommandText); 
      vCommand.Prepare(); 
       vCommand.ExecuteNonQuery(); 


     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Sorry error: " + ex.Message); 
     } 

但是,當我執行的代碼是給我這個

enter image description here

回答

3

爲什麼它不工作是因爲參數是通過單引號使其enlosed原因要轉換成字符串文字,刪除他們周圍的單引號,它肯定會工作。

參數是標識符而不是字符串文字,因此它們不能用單引號包裝。

VALUES 
( @CalligraphyNeeded, @Comments , @NameEnglish 
    ,@JobTitleEnglish , @NameArabic , @JobTitleArabic 
    ,@BOBOX , @HomePhoneNumber 
    ,@FAXNumber , @OfficePhoneNumber , @MobileNumber 
    ,@Email 
) 
+1

謝謝JW, 什麼明顯的錯誤:( – Mutken 2013-03-16 11:29:32

+0

歡迎您':在OP的代碼D'高興它幫助 – 2013-03-16 11:29:57

+0

其實,第一個參數(CalligraphyNeeded)是正確的,即使做了它對數據庫作爲一個適當的價值。 – 2013-03-16 12:07:51

相關問題