2016-09-29 2 views
0

код не бросайте никаких ошибок он просто не Выполнить satementОбновление базы данных SQL с помощью VB.NET

Private Sub Update_Program(item As Programme) 
    'Set Command 
    SchoolTypes.Connexion.Open() 
    item.Command = New SqlClient.SqlCommand("UPDATE T_Programme Set pro_nom='@nom' , [email protected] , [email protected] WHERE pro_no ='@no'", SchoolTypes.Connexion) 

    ''Add Parameter 
    item.Command.Parameters.Add("@no", SqlDbType.VarChar, 6) 
    item.Command.Parameters.Add("@nom", SqlDbType.VarChar, 50) 
    item.Command.Parameters.Add("@unit", SqlDbType.Float) 
    item.Command.Parameters.Add("@heures", SqlDbType.Int) 
    ''''Set Values 
    item.Command.Parameters("@no").Value = item.Pro_No 
    item.Command.Parameters("@nom").Value = item.Pro_Nom 
    item.Command.Parameters("@unit").Value = item.Pro_Nbr_Unit 
    item.Command.Parameters("@heures").Value = item.Pro_Nbr_Heure 

    Try 
     If item.Command.ExecuteNonQuery() > 0 Then 
      MsgBox("Modifier avec Succes!") 
     End If 
     SchoolTypes.Connexion.Close() 
    Catch ex As Exception 
     err.ShowDetails(System.Reflection.MethodBase.GetCurrentMethod(), ex) 
    End Try 
End Sub 

Я проверил мою команду, и она работает на SQL, но не по программе ...

Вот пасту из моей базы данных Database

+0

избавиться от клещей вокруг '@ no'' на самом деле избавиться от всех из них, вероятно, – Plutonix

+0

' "UPDATE tp_p44.dbo.T_Programme Set ...' – Slai

+0

@Plutonix Я попробовал это, и это также не делает выполните запрос –

ответ

1

Ваша команда утверждение неверно. yo не должен давать отметки «» для ваших параметров в инструкции обновления.

А также у вас есть несоответствующие входы. Ниже должен быть ваш оператор обновления. CMD = New SqlCommand ("UPDATE T_Programme Set pro_nom = @ ном, pro_nbr_unites = @ блок, pro_nbr_heures = @ Heures WHERE pro_no = @ нет", кон)

Я попытался ниже код. И он отлично работает.

Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load 
     Dim con As SqlConnection 
     Dim cmd As SqlCommand 
     Dim row As Integer 
     'Dim str As String 
     con = New SqlConnection("server=.;database=Test;integrated security=true") 
     con.Open() 
     cmd = New SqlCommand("UPDATE T_Programme Set [email protected] , [email protected] , [email protected] WHERE pro_no [email protected]", con) 
     cmd.Parameters.Add("@no", SqlDbType.VarChar, 6) 
     cmd.Parameters.Add("@nom", SqlDbType.VarChar, 50) 
     cmd.Parameters.Add("@unit", SqlDbType.Float) 
     cmd.Parameters.Add("@heures", SqlDbType.Int) 
     ''''Set Values 
     cmd.Parameters("@no").Value = "1234" 
     cmd.Parameters("@nom").Value = "qwerty" 
     cmd.Parameters("@unit").Value = 12.0 
     cmd.Parameters("@heures").Value = 2 
     row = cmd.ExecuteNonQuery() 

     con.Close() 
    End Sub 
+0

в порядке, поэтому я должен избегать «в заявлении об обновлении, но в других случаях я должен упомянуть их? Почему? –

+0

Это не только заявление об обновлении, но и место для размещения. вам не нужно давать «». – Naidu

+1

@Pavan Chandaka, вы знаете, что можете добавить значение в конец парама справа? Currenlty выше недостатка читаемости, его запутывает. Также завершите команду и соединения при использовании операторов, чтобы они были правильно настроены, когда вы с ними закончили. – Codexer

Смежные вопросы