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# 代码插入到两个表中,但它不工作。

虽然我使用 sql 管理软件在 sql 表中插入相同的语句,但它的工作原理。

4

3 回答 3

0

您的 SQL 以 a 开头,BEGIN但没有匹配的END。您不需要BEGIN- 删除它。

于 2013-03-20T08:11:19.303 回答
0

谢谢大家我自己解决了我的问题............问题是

         GlobalData.RoleID_AddUsers is 0..

但是由于 sql try catch 它没有向我显示错误....或捕获异常....但是当我删除 sql try catch ...然后它开始抛出异常说外键违规....和bla bla ........我根据要求调整代码......问题解决了......:)

于 2013-03-20T11:04:37.560 回答
0

既然您说没有错误出现,那么我想这是问题所在,您的条件不匹配,您介意放置一个调试点来检查您的条件是否匹配以调用您的插入函数?

if (rbtnYes.Checked == true)

if (rbtnMale.Checked == true)
于 2013-03-20T08:41:24.833 回答