2015-04-02 110 views
-1

這是我的更新語句,當我嘗試使用它的錯誤「對一個或多個參數沒有指定的值...等」沒有價值給出一個或多個參數Vb.net更新語句

更新數據庫的訪問

注:「有一些失敗,我想保持無變化/更新」

sqlupdate = "UPDATE MainData SET [Done][email protected], [Delevered][email protected], [Called][email protected], [QussaiCheked][email protected],[Employee][email protected],[CustName][email protected], [CustPhone][email protected] ," & _ 
     "[NoSignal][email protected] ,[NoPower][email protected] ,[FormatC][email protected] ,[FormatAll][email protected] ,[WindXP][email protected] ,[Wind7][email protected] ,[Wind8][email protected] ,[DeviseType][email protected] ," & _ 
     "[Note][email protected] ,[Reciver][email protected],[DateTime]=[DateTime],[Coast][email protected] WHERE ID='" & Convert.ToInt32(IDLable.Text) & "'" 


If (DoneCheckBox.Checked = True) Then 
     cmd.Parameters.AddWithValue("@Done", DoneCheckBox.Checked) 
    End If 

    If (DeleveredCheck.Checked = True) Then 
     cmd.Parameters.AddWithValue("@Delevered", DeleveredCheck.Checked) 
    End If 
    If (CalledCheck.Checked = True) Then 
     cmd.Parameters.AddWithValue("@Called", CalledCheck.Checked) 
    End If 
    If (QussaiChecked.Checked = True) Then 
     cmd.Parameters.AddWithValue("@QussaiCheked", QussaiChecked.Checked) 
    End If 
    If (Employee.Checked = True) Then 
     cmd.Parameters.AddWithValue("@Employee", Employee.Checked) 
    End If 
    cmd.Parameters.AddWithValue("@CustName", NameTextBox.Text) 
    cmd.Parameters.AddWithValue("@CustPhone", PhoneTextBox.Text) 
    If (RadioSignal.Checked = True) Then 
     cmd.Parameters.Add(New OleDbParameter("@NoSignal", RadioSignal.Checked)) 
    End If 
    If (RadioPower.Checked = True) Then 
     cmd.Parameters.Add(New OleDbParameter("@NoPower", RadioPower.Checked)) 
    End If 
    If (Fc.Checked = True) Then 
     cmd.Parameters.AddWithValue("@FormatC", Fc.Checked) 
    End If 
    If (Fall.Checked = True) Then 
     cmd.Parameters.AddWithValue("@FormatAll", Fall.Checked) 
    End If 
    If (WinXP.Checked = True) Then 
     cmd.Parameters.AddWithValue("@WindXP", WinXP.Checked) 
    End If 
    If (Win7.Checked = True) Then 
     cmd.Parameters.AddWithValue("@Wind7", Win7.Checked) 
    End If 
    If (Win8.Checked = True) Then 
     cmd.Parameters.AddWithValue("@Wind8", Win8.Checked) 
    End If 

「...等所有參數 」然後

con1.Open() 
    Try 
     cmd.ExecuteNonQuery() 
    Catch ex As Exception 
     MessageBox.Show(ex.ToString()) 
     ' MessageBox.Show(ex.Source) 
    End Try 
    con1.Close() 
    RefreshDGV() 
    MessageBox.Show("{updated") 

我嘗試發佈excep重刑處理的消息,但「仍比10聲望不到新」

+0

您尚未顯示添加參數的代碼。 – 2015-04-02 11:15:14

回答

-1

我解決我的問題感謝所有如何查看或試圖解決這個問題,並幫助我 :)

我更新每個字段逐個使用此代碼:

Dim con1 As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\USER\Desktop\Test.accdb") 

Public Cmd As OleDbCommand 



    Dim Str As String 
     Str = "update MainData set CustName=" 
     Str += """" & NameTextBox.Text & """" 
     Str += " where ID=" 
     Str += IDLable.Text.Trim() 
     con1.Open() 
     Cmd = New OleDbCommand(Str, con1) 
     Cmd.ExecuteNonQuery() 
     con1.Close() 
相關問題