PDA

View Full Version : سوال: اشکال در تراکنش



multiman
چهارشنبه 04 خرداد 1390, 16:28 عصر
سلام بر دوستان گرامی
2تا جدول در بانک اطلاعاتی دارم که بوسیله کلید خارجی به هم مرطب هستند ولی وقتی دستورات insert را بر روی هر کدام از جداول در درون یک تراکنش انجام می دهم با مشکل برخورد می کنم ، ولی وقتی ارتباط 2 جدول را از بیم می برم تراکنش با موفقیت انجام می شود .
کسی از دوستان می دونه مشکل کار کجا می تونه باشه.
سرچم کردم ولی جایی در مورد تراکنش ها بحث نشده.:افسرده:

masoudmok
چهارشنبه 04 خرداد 1390, 16:56 عصر
سلام دوست عزیز
احتمالا به دلیل اینه که شما کلید خارجی رو insert میکنی که تو جدول دیگه کلید اصلی نیست .
مشکلت چیه ؟؟

multiman
چهارشنبه 04 خرداد 1390, 18:45 عصر
سلام دوست عزیز
احتمالا به دلیل اینه که شما کلید خارجی رو insert میکنی که تو جدول دیگه کلید اصلی نیست .
مشکلت چیه ؟؟

PcName = Dns.GetHostName();
string strcon = @"server=" + PcName + " ;AttachDbFilename=|DataDirectory|A.mdf;Integrated Security=True";
con = new SqlConnection(strcon);
con.Open();

string n = "ali";
string n2 = "ali";
string f = "rezaee";
using (TransactionScope scop = new TransactionScope())
{
string insertb = "INSERT INTO b (name) VALUES ('" + n + "')";
SqlCommand command = con.CreateCommand();
command = new SqlCommand(insertb, con);
command.ExecuteNonQuery();
using (TransactionScope scop2 = new TransactionScope(TransactionScopeOption.RequiresNe w))
{

string insertc = "INSERT INTO c (name,family) VALUES ('" + n2 + "','" + f + "')";
SqlCommand command1 = con.CreateCommand();
command1 = new SqlCommand(insertc, con);
command1.ExecuteNonQuery();

scop2.Complete();
}

scop.Complete();
}

فیلد name در دستور insert اول کلید اصلی است که بوسیله فیلد name در ستور insert دومی این 2 جدول با یکدیگر ارتباط دارند.
اگر ارتباط 2 جدول را قطع کنم تراکنش با موفقیت ثبت می شه ولی در صورت ارتباط 2جدول تراکنش انجام نمی شه.