Me.mycom.CommandText = "INSERT INTO Schritte_WegGruppen VALUES (" & SchrittID.ToString & ", " & WegGruppeID.ToString & ", '...')"
Me.mycom.ExecuteNonQuery()
に予想されるエラーを投げていない上記の2行はVB .NETで完全に罰金実行しますが、それらはC#でこの例外をスロー:SqlCommand.ExecuteNonQuery()VB.net
文が終了しました。 PRIMARY KEY制約 "PK_Schritte_WegGruppen_ID_Schritte_ID_WegGruppen"の違反。オブジェクト "dbo.steps_pathgroups"に重複キーを挿入することはできません。二重キー値は(1,1)です。
この例外は完全に論理的であり、SQL Server Management Studioでもこのクエリを実行すると同じ例外が発生します。私はそれを実行するときVBコードでエラーが予想されますが、私は例外を取得しません。私はなぜなのか理解していない。
ExecuteNonQuery()
はVB.NetとC#でどのように動作するのですか?
私はC#に翻訳しようとしている完全なVBコードです。
Try
'*** In die Modul Datenbank wechseln ***
Me.mycom.CommandText = "USE " & ModulDB
Me.mycom.ExecuteNonQuery()
Me.mycom.CommandText = "INSERT INTO Schritte_WegGruppen VALUES (" & SchrittID.ToString & ", " & WegGruppeID & ", '...')"
Me.mycom.ExecuteNonQuery()
Return 1
Catch ex As Exception
Me.ErrMess = ex.Message
Return -1
そして翻訳されたC#コードはここにある:
try
{
//*** In die Modul Datenbank wechseln ***
this.mycom.CommandText = "USE " + ModulDB;
this.mycom.ExecuteNonQuery();
this.mycom.CommandText = "INSERT INTO Schritte_WegGruppen VALUES (" + SchrittID.ToString() + ", " + WegGruppeID.ToString() + ", '...')";
this.mycom.ExecuteNonQuery();
return 1;
}
catch (Exception ex)
{
this.ErrMess = ex.Message;
return -1;
}
は、私は私の質問は今明確であると思います。
では、あなたがあなたのVB.netコードで 'てみてください/ catch'のestructureを持っていませんか? – Pikoh
私と一緒に "do"、 "not"、 "concatenate"、 "input"、 "into"、 "sql" ...と言ってください...真剣に言えば、そのコードは**大規模なSQLIリスクです。しかし、VBコードでは、例外を飲み込む可能性のあるエラー処理コードがありますか? –
あなたは私たちにC#コード – jamiedanq