0
SqlConnection con = new SqlConnection(GlobalData.GetConnectionString());

string queryDepartment = null;
if (rbtnYes.Checked == true)
{
    if (rbtnMale.Checked == true)
    {
        queryDepartment = 
@"BEGIN TRY 
    BEGIN TRAN 
    insert into UserDetails 
       values('" + Convert.ToInt32(txtID.Text) + "','" + txtFullName.Text + "','" + txtPassword.Text + "','" + txtUserName.Text + "','" + cbDepartment.SelectedValue.ToString() + "','" + txtContactAddress.Text + "','" + Convert.ToInt64(txtContactNumber.Text.ToString()) + "','" + txtContactEmail.Text + "',CAST(GETDATE() AS DATE),'" + rbtnYes.Text + "',null,'" + rbtnMale.Text + "','" + Convert.ToInt64(txtSalary.Text.ToString()) + @"'); 
    insert into Users 
       values('" + GlobalData.UsersID_AddUsers + "','" + GlobalData.RoleID_AddUsers + "','" + txtUserName.Text + "','" + Convert.ToInt32(txtID.Text) + @"'); 
    COMMIT TRAN 
  END TRY 
  BEGIN CATCH 
    SELECT ERROR_NUMBER() AS ErrorNumber,ERROR_SEVERITY() AS ErrorSeverity,ERROR_STATE() AS ErrorState,ERROR_PROCEDURE() AS ErrorProcedure,ERROR_LINE() AS ErrorLine,ERROR_MESSAGE() AS ErrorMessage 
    IF @@TRANCOUNT > 0 
    ROLLBACK TRANSACTION 
  END CATCH";
    }
}

SQL トランザクションを使用して C# コードから 2 つのテーブルにレコードを挿入しようとしていますが、機能していません。

同じステートメントをSQL管理ソフトウェアを使用してSQLテーブルに挿入しています。

4

3 に答える 3

0

SQL は a で始まりますが、BEGIN一致する がありませんEND。は必要ありませんBEGIN- 削除してください。

于 2013-03-20T08:11:19.303 に答える
0

エラーが出ないと言ったので、これが問題だと思います。条件が一致しません。挿入関数を呼び出すために条件が一致しているかどうかを確認するデバッグポイントを配置していただけませんか?

if (rbtnYes.Checked == true)

if (rbtnMale.Checked == true)
于 2013-03-20T08:41:24.833 に答える
0

すべての人に感謝します 私は自分の問題を自分で解決しました........ 問題は

         GlobalData.RoleID_AddUsers is 0..

しかし、SQL try catch が原因で、エラーが表示されない....または例外をキャッチする....しかし、SQL try catch を削除すると、外部キー違反という例外がスローされ始めます....そしてbla bla .........そして、要件に従ってコードを調整します....そして問題は解決しました...... :)

于 2013-03-20T11:04:37.560 に答える