2014-04-23 105 views
0

在我的webmethod中,我正在更新數據庫。但在調試光標時在cmd.ExecuteNonQuery()上轉義。我的代碼是,cmd.ExecuteNonQuery()不允許

 If tbl = "All" Then 
      cmd = New SqlCommand("update setbool set pos_val='False',valid_rp='False',Pos_save='False'", conn) 
      cmd.ExecuteNonQuery() 
      Return Nothing 
     Else 
      cmd = New SqlCommand("update setbool set " & tbl & "='True'", conn) 
      cmd.ExecuteNonQuery() 
      Return Nothing 
     End If 

有什麼建議嗎?

+0

到底什麼異常,你收到? –

+0

你爲什麼要在'If'和'Else'塊中複製代碼?首先創建命令對象,在'If'和'Else'塊中設置'CommandText',因爲這是唯一不同的位,然後調用'ExecuteNonQuery'和'Return'。 – jmcilhinney

+0

至於你的問題,我們需要知道錯誤消息是肯定知道的,但是我猜測你的列名導致語法錯誤或者你的值導致數據類型不匹配。如果那些是「比特」列,那麼你需要使用值1和0,而不是包含「真」和「假」的文本。 – jmcilhinney

回答

0

我找到了我自己的解決方案。

代替

 cmd = New SqlCommand("update setbool set pos_val='False',valid_rp='False',Pos_save='False'", conn) 
     cmd.ExecuteNonQuery() 
     Return Nothing 

我改變

  Using cmd1 As New SqlCommand("update setbool set pos_val='False',valid_rp='False',Pos_save='False'") 
       cmd1.CommandType = CommandType.Text 
       cmd1.Connection = conn 
       conn.Open() 
       cmd1.ExecuteNonQuery() 
       conn.Close() 
      End Using 
      Return Nothing