使用SQL事务的SQL插入语句不工作

本文关键字:SQL 工作 语句 事务 使用 插入 | 更新日期: 2023-09-27 18:04:54

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管理软件的工作

使用SQL事务的SQL插入语句不工作

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

既然你说没有错误出来,那么我猜这就是问题所在,你的条件不匹配,你介意把一个调试点来检查你的条件匹配调用你的插入函数吗?

if (rbtnYes.Checked == true)
if (rbtnMale.Checked == true)

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

         GlobalData.RoleID_AddUsers is 0..

,但因为SQL尝试捕捉它不显示我的错误....或者捕获异常....但是当我删除SQL尝试捕获…然后它开始抛出异常说外键违反....等等........我根据要求调整代码....问题解决了......:)