代码没有错误它只是没有执行声明
Private Sub Update_Program(item As Programme)
'Set Command
SchoolTypes.Connexion.Open()
item.Command = New SqlClient.SqlCommand("UPDATE T_Programme Set pro_nom='@nom' , pro_nbr_unites=@nom , pro_nbr_heures=@unit 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 :(得分:2)
您的命令语句错误。你不应该给"''"在update语句中为您的参数标记。
你也有不匹配的输入。以下应该是您的更新声明。
"更新T_Programme设置pro_nom = @ nom,pro_nbr_unites = @ unit,pro_nbr_heures = @ heures WHERE pro_no = @ no"
我试过下面的代码。它工作正常。
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
Dim rowsAffected As Integer
Using con As New SqlConnection("server=.;database=Test;integrated security=true")
Using cmd As New SqlCommand("UPDATE T_Programme Set pro_nom=@nom , pro_nbr_unites=@unit , pro_nbr_heures=@heures WHERE pro_no =@no", con)
cmd.Parameters.Add("@no", SqlDbType.VarChar).Value = "1234"
cmd.Parameters.Add("@nom", SqlDbType.VarChar).Value = "qwerty"
cmd.Parameters.Add("@unit", SqlDbType.Float).Value = 12.0
cmd.Parameters.Add("@heures", SqlDbType.Int).Value = 2
con.Open()
rowsAffected = cmd.ExecuteNonQuery()
End Using
End Using
End Sub