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表中插入相同的语句,但是它正在工作。
答案 0 :(得分:0)
您的SQL以BEGIN
开头,但没有匹配的END
。您不需要BEGIN
- 将其删除。
答案 1 :(得分:0)
既然你说没有错误出现那么我想这是问题,你的情况不匹配,你介意把一个调试点检查你的条件匹配调用你的插入函数吗?
if (rbtnYes.Checked == true)
if (rbtnMale.Checked == true)
答案 2 :(得分:0)
谢谢你,我已经解决了我自己的问题......... <问题是
GlobalData.RoleID_AddUsers is 0..
但由于sql尝试捕获它没有向我显示错误....或捕获异常.... 但当我删除sql尝试捕获...然后它开始抛出异常说外键违反....和bla bla ........我按照要求调整代码.... 问题解决了......:)