PDA

View Full Version : سوال: transaction در سمت c#



zahra.mf
شنبه 25 شهریور 1391, 15:15 عصر
سلام
من میخوام سمت c# یه transaction بنویسم برای کد زیر


sql1 = @"insert into shamelhavaleh (havaleh_ID,kala_ID,kalavorudi,namek)
values ({0},{1},{2},N'{3}')";
sql1 = string.Format(sql1, srtcmd, id,
(textBox2.Text.Replace("'", "''")),
(textBox1.Text.Replace("'", "''"))
);
int tarakonesh = 1;
sql2 =@" insert into kalamojud (Tedad,Tarakonesh,kala_ID) values ({0},{1},{2})";
sql2 = string.Format(sql2,
(textBox2.Text.Replace("'", "''")),
tarakonesh, id
);
dal.docommand(sql1);
dal.docommand(sql2);


ولی نمیدونم چجوری باید این کار و بکنم اگه کسی میتونه کمک کنه ممنون

Arash_janusV3
شنبه 25 شهریور 1391, 21:09 عصر
درج رکورد با دستور INSERT در SQL با استفاده از دستور BeginTransaction (http://barnamenevis.org/showthread.php?346847-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D9%85%D8%AB%D8%A7%D9%84%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C&p=1530124&viewfull=1#post1530124)
انجام دادن چندین عملیات INSERT در SQL به طور همزمان با استفاده از دستور BeginTransaction (http://barnamenevis.org/showthread.php?346847-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D9%85%D8%AB%D8%A7%D9%84%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C&p=1531646&viewfull=1#post1531646)

zahra.mf
شنبه 25 شهریور 1391, 22:21 عصر
درج رکورد با دستور INSERT در SQL با استفاده از دستور BeginTransaction (http://barnamenevis.org/showthread.php?346847-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D9%85%D8%AB%D8%A7%D9%84%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C&p=1530124&viewfull=1#post1530124)
انجام دادن چندین عملیات INSERT در SQL به طور همزمان با استفاده از دستور BeginTransaction (http://barnamenevis.org/showthread.php?346847-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D9%85%D8%AB%D8%A7%D9%84%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C&p=1531646&viewfull=1#post1531646)

شما دارید تو اینسرت یه مقدار مشخص رو میدی و این مقدار ثابته ولی من برای هر اینسرت از ورودی مقدار میگیرم از textbox!

Arash_janusV3
شنبه 25 شهریور 1391, 22:29 عصر
شما به جای مقادیر ثابت textbox.text را جایگزین کنید
البته فیلدها و نام جدول رو تغییر بدید

zahra.mf
یک شنبه 26 شهریور 1391, 00:40 صبح
شما به جای مقادیر ثابت textbox.text را جایگزین کنید
البته فیلدها و نام جدول رو تغییر بدید

به textbox.tex گیر میده میگه syntaxterrore!!!
تو ExecuteNonQuery(); اینجا خطا میده

Babak-Magic
یک شنبه 26 شهریور 1391, 09:18 صبح
درود کدتون رو بزارید تا بهتر بشه راهنمایی کرد

zahra.mf
یک شنبه 26 شهریور 1391, 10:12 صبح
string cs = "Data source=.\\SQLEXPRESS;Attachdbfilename=D:\\Crack\\a nbar2\\anbar2\\bin\\Debug\\db\\anbar2.mdf;Integrat ed security=true;user Instance=true";
SqlConnection conn = new SqlConnection(cs);
conn.Open();
SqlCommand command1 = new SqlCommand("insert"+" into shamelhavaleh (havaleh_ID,kala_ID,kalavorudi,namek)"+"values(srtcmd,id,textBox2,textBox1",conn);
int tarakonesh = 1;
SqlCommand command2 = new SqlCommand("insert" + " into kalamojud (Tedad,Tarakonesh,kala_ID)" + "values(textBox2.Text.Replace(),tarakonesh, id)", conn);
SqlTransaction Transaction = conn.BeginTransaction();
command1.Transaction = Transaction;
command2.Transaction = Transaction;
command1.ExecuteNonQuery();
command2.ExecuteNonQuery();
Transaction.Save("This Point");
Transaction.Rollback("This Point");
Transaction.Commit();
command1.Dispose();
command2.Dispose();
conn.Close();
این کد بعد گذاشتن ترنس قبل ترنس هم که بالا گذاشتم وقتی insert میکنم مشکل تو مقدار (values) دادنه مدلی که اونجا نوشتم حس میکنم اشتباهه نمیدونم!!!

Arash_janusV3
یک شنبه 26 شهریور 1391, 11:49 صبح
نام فیلدها و Typeها را هم بگذارید
مشکل می تواند از مغایرت نوع فیلدها با متغیر باشد

zahra.mf
یک شنبه 26 شهریور 1391, 12:26 عصر
نام فیلدها و Typeها را هم بگذارید
مشکل می تواند از مغایرت نوع فیلدها با متغیر باشد

من قبل اینکه tranc بذارم اینجوری تعریف میکردم

sql1 = @"insert into shamelhavaleh (havaleh_ID,kala_ID,kalavorudi,namek)
values ({0},{1},{2},N'{3}')";
sql1 = string.Format(sql1, srtcmd, id,
(textBox2.Text.Replace("'", "''")),
(textBox1.Text.Replace("'", "''"))
);
یعنی با string.format تبدیل میکردم ولی الان نمیدونم چجوری این و بذارم تو tranc