2012-04-17 22 views
0

に影響を与えないSQL私は、データベースを更新するには、このコードを持っているが、私は右のデータとそれを実行し、これまでとき、それはエラーなしで実行しますが、databseが更新されていないデータベースの更新がデータベース

Dim conn As New SqlClient.SqlConnection(My.Resources.conn_str) 
Dim SQL As String = "Update vehicle SET [email protected],[email protected]_no,[email protected],[email protected],[email protected],[email protected]_service Where (id = @id)" 
     conn.Open() 
     Try 
      Dim cmd As New SqlClient.SqlCommand(SQL, conn) 
      Try 
       cmd.Parameters.AddWithValue("@make", strMake) 
       cmd.Parameters.AddWithValue("@reg_no", strRegnNum) 
       cmd.Parameters.AddWithValue("@model", strModel) 
       cmd.Parameters.AddWithValue("@year", intYear) 
       cmd.Parameters.AddWithValue("@type", strType) 
       cmd.Parameters.AddWithValue("@last_service", LastService) 
       cmd.Parameters.AddWithValue("@id", ID.ToString) 
       cmd.ExecuteNonQuery() 
       cmd.Dispose() 
      Catch ex As Exception 
       Return ex.Message 
      End Try 
     Catch ex As Exception 
      Return ex.Message 
     Finally 
      conn.Dispose() 
     End Try 
誰も私を助けることができる

エラーメッセージが表示されないので、その理由は機能しません。

おかげ

EDIT 私は

Dim intAffected As Integer = cmd.ExecuteNonQuery() 
Debug.Print(intaffected) 

cmd.ExecuteNonQuery()を交換し、私は、出力ウィンドウ内の1つの

+0

これは私がちょうどこので遊んでました、まだdosent仕事 – Philipp

+0

を変更しません。 IDを見てください。大文字で書かれています。他のすべての変数は、ラクダの場合です。あなたの "ID"は間違った "ID"です。 – Smith

+0

すでに削除:-)、クエリが間違っているとは思えない、それは以前にはなかったビット – Philipp

答えて

2

いくつかの考え得る:

  1. SQLプロファイラにアクセスできる場合は、クエリ、値、結果、任意のトリガ、トランザクションなどが含まれます。これは何が起こっているのかを特定する最も簡単な方法です。
  2. Profilerにアクセスできない場合は、OUTPUT句を含めるようにクエリを更新し、ExecuteReaderを使用して挿入された*およびdeleted。*の値をSqlDataReaderに返します。結果を確認してください。
  3. idがintの場合は、parameter.AddWithValueでID.ToString()を使用しないでください。文字列値を持つAddWithValueメソッドでIDパラメータがvarchar/nvarcharとして構成される可能性があるため、整数自体を使用します。
+0

プロファイラがあります。プロファイラでデバッグとリバースエンジニアリングの良い四半期を開始します。 –

関連する問題