04-07-13, 10:05 AM
لقد قمت باستخدام Transaction أعتقد أنك على دراية بآلية علمها ... باختصار تقوم Transaction بتنفيذ عبارات sql عديدة فإما أن تنجح جميع هذه العبارات فيتم تثبيتها أو إن حدث خطأ ما عند تنفيذ إحدى العبارات فإنه سيتم التراجع عن تنفيذ جميع ماسبق .
يمكن الاستفادة منها , حيث نريد نحن أن نضمن أن الإضافة ستتم على كلا الجدولين classes و sections أو أن لايتم الإضافة أساسا
بإمكانك أختي الكريمة استخدام هذا الكود :
على العموم المثال كاملا موجود في المرفقات
تحياتي
يمكن الاستفادة منها , حيث نريد نحن أن نضمن أن الإضافة ستتم على كلا الجدولين classes و sections أو أن لايتم الإضافة أساسا
بإمكانك أختي الكريمة استخدام هذا الكود :
كود :
[align=left]
SqlConnection myConnect;
SqlCommand myCommand;
myConnect = new SqlConnection();
string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
myConnect.ConnectionString = connectionString;
myCommand = new SqlCommand();
myCommand.Connection = myConnect;
string className = TextBox1.Text;
string section = TextBox2.Text;
SqlTransaction transaction;
myConnect.Open();
transaction = myConnect.BeginTransaction();
try
{
new SqlCommand("INSERT INTO classes " +
"(classname) VALUES ('" + className + "');", myConnect, transaction).ExecuteNonQuery();
new SqlCommand("INSERT INTO sections " +
"(classno) select top(1) classno from classes order by classno desc;", myConnect, transaction)
.ExecuteNonQuery();
new SqlCommand("update sections set section='" + section + "' where secid=(select max(secid) from sections)", myConnect, transaction)
.ExecuteNonQuery();
transaction.Commit();
}
catch (SqlException sqlError)
{
transaction.Rollback();
Response.Write(sqlError.Message);
}
myConnect.Close();
[/align]على العموم المثال كاملا موجود في المرفقات
تحياتي
