使用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以BEGIN
开始,但没有匹配的END
。你不需要BEGIN
-删除它
既然你说没有错误出来,那么我猜这就是问题所在,你的条件不匹配,你介意把一个调试点来检查你的条件匹配调用你的插入函数吗?
if (rbtnYes.Checked == true)
if (rbtnMale.Checked == true)
谢谢大家,我已经解决了我自己的问题.........问题是
GlobalData.RoleID_AddUsers is 0..
,但因为SQL尝试捕捉它不显示我的错误....或者捕获异常....但是当我删除SQL尝试捕获…然后它开始抛出异常说外键违反....等等........我根据要求调整代码....问题解决了......:)