2013-03-21 33 views
0

我認爲這會更簡單,但它給我帶來麻煩。我基本上希望用戶檢查幾個框,然後將每個單獨的複選框添加到表中的一行。我嘗試了一個CheckBoxList,但決定只是單獨添加每個複選框。基本上這是我的代碼:將CheckBox.Checked狀態插入數據庫

Using cn2 As New SqlConnection(connectionString) 
     Dim cmd2 As New SqlCommand 
     If chkActions.Checked = True Then 
      cmd2 = New SqlCommand("Insert into [Turns] (Actions) VALUES ('1'", cn2) 
      cn2.Open() 
      cmd2.ExecuteNonQuery() 
      cn2.Close() 

     End If 
    End Using 

Actions行是一個位數據類型,所以據我所知它只是一個1,0或NULL。它給了我一個「錯誤的語法接近...」的錯誤。如果任何人都可以發現錯誤或者更好的方式來做到這一點,我會非常感激。

+0

我編輯了自己的冠軍。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 – 2013-03-21 18:21:45

+0

感謝您的提示。不知道! – 2013-03-21 18:28:41

+0

只有在複選框被選中時才添加? – Steve 2013-03-21 18:29:59

回答

1

你治療你bit值一個string

刪除''1。您還需要一個)1後關閉括號

cmd2 = New SqlCommand("Insert into [Turns] (Actions) VALUES (1)", cn2) 
+0

我忘了我需要向數據庫添加一個非空代碼,所以我調整了代碼。它會給我一個語法錯誤。它會給我一個語法錯誤。 – 2013-03-21 18:30:07

+0

這是導致你問題的完整語法。錯誤的數據類型和不正確的語法。 – Darren 2013-03-21 18:32:09

+0

哦,是的,我完全理解了對(1)的改變,我相信這是完美的。唯一的非空列是AcctNum,所以我爲它添加了參數。其餘的列已經有他們的信息,我基本上需要用一個複選框「更新」一個進程。據我所知,我不需要提供數據到其餘的列,因爲他們可以留空/他們已經提供的信息。 – 2013-03-21 18:35:51

0

失蹤括號在年底

cmd2 = New SqlCommand("Insert into [Turns] (Actions) VALUES ('1')", cn2) 
+0

至少這固定了其中一個問題。我發誓,我問了三次之前檢查了代碼。分號,逗號和括號是我的終點。哈。謝謝! – 2013-03-21 18:29:25

0

你好像缺少一個右)

cmd2 = New SqlCommand("Insert into [Turns] (Actions) VALUES ('1'", cn2) 

也許應該

cmd2 = New SqlCommand("Insert into [Turns] (Actions) VALUES ('1')", cn2)