PDA

View Full Version : سوال: اشکال در انجام عمل insert همزمان در سه جدول در سمت C#‎‎؟



valentine093
دوشنبه 18 فروردین 1393, 14:17 عصر
با سلام.من سه جدول دارم که باید عمل insert به طور همزمان در اینها انجام بشه،و چون در ارسال مجموعه ای از مقادیر به پایگاه به صورت xml اشکال دارم (سوالم رو به سایت فرستادم) نمیتوانم از تراکنش استفاده کنم لذا میخواستم اساتید محترم راهنمائی کنند که آیا در سمت C#‎‎‎‎ چیزی شبیه تراکنش هست که اگر از 3 دستور insert،یکی عمل نکرد دیگر کدها نیز اجرا نشند.

از جداول من یکی به عنوان جدول اصلی به دوتای دیگر وصل است و غیر از این ارتباطی بین این سه جدول نیست

با تشکر

Mousavmousab
دوشنبه 18 فروردین 1393, 20:37 عصر
بله دوست عزیز هست !!!




using System.Data.SqlClient;








SqlTransaction

Mojtaba.Shateri
دوشنبه 18 فروردین 1393, 20:47 عصر
با سلام.من سه جدول دارم که باید عمل insert به طور همزمان در اینها انجام بشه،و چون در ارسال مجموعه ای از مقادیر به پایگاه به صورت xml اشکال دارم (سوالم رو به سایت فرستادم) نمیتوانم از تراکنش استفاده کنم لذا میخواستم اساتید محترم راهنمائی کنند که آیا در سمت C#‎‎‎‎‎‎‎‎ چیزی شبیه تراکنش هست که اگر از 3 دستور insert،یکی عمل نکرد دیگر کدها نیز اجرا نشند.

از جداول من یکی به عنوان جدول اصلی به دوتای دیگر وصل است و غیر از این ارتباطی بین این سه جدول نیست

با تشکر
میتونی از این استفاده کنی :
SqlConnection cn = null;SqlTransaction tr = null;
try
{
cn = new SqlConnection());
tr = cn.BeginTransaction());
//دستورات sql
tr.Commit();
}
finally
{
if (cn != null)
cn.Dispose();
if (tr != null)
tr.Dispose();
}

یا از این استفاده کنید :
using (SqlConnection connection = new SqlConnection(connectionString)) {
connection.Open();


SqlCommand command = connection.CreateCommand();
SqlTransaction transaction;
transaction = connection.BeginTransaction("transaction");


command.Connection = connection;
command.Transaction = transaction;


try
{
// inja insertharo gharar bede
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
}
}