السلام عليكم
نفرض اننى ادخل فاتورة و هى مكونة من 2 table
(sale and sub sale
طريقة الحفظ عن طريق data adaptor فى 2 table
كيف اعمل transaction لضمان حفظ البيانات فى 2 table
مع بعض
ارجوا ارسال مثال
السلام عليكم
نفرض اننى ادخل فاتورة و هى مكونة من 2 table
(sale and sub sale
طريقة الحفظ عن طريق data adaptor فى 2 table
كيف اعمل transaction لضمان حفظ البيانات فى 2 table
مع بعض
ارجوا ارسال مثال
لو قمت بعمل بحث في المنتدى .. لكنت وجدت هذا الموضوع
اخي إليك هذا الكود مع شرح اسطر الـ Transaction
وقد استخدمت نفس فكرتك في مثال سابق
//تعريف Transaction في الخارج
OleDbTransaction myTransaction;
private void linkLabel3_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
{
try
{
if(this.xpComboBox5.Text=="بدل تالف")
{
try
{
DialogResult dir=MessageBox.Show("انت الأن على وشك أن بضاعة تالفة بأخرى بدل تالف هل انت متأكد من المتابعة","Wornning",MessageBoxButtons.OKCancel,MessageBoxIcon.Information);
if(dir.ToString()=="OK")
{
//// start Connection For transaction***///
cnOledb=new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\nvit\accounting.mdb;Persist Security Info=False");
cnOledb.Open();
///***start a local transaction***\\\\
///
myTransaction=cnOledb.BeginTransaction();
// Enlist the command in the current transaction.
cm=cnOledb.CreateCommand();
cm.Transaction=myTransaction;
// start Command one
cm.CommandText = "Insert into Stock values ('"+this.xpTextBox2.Text+"','"+this.xpTextBox16.Text+"',"+this.xpTextBox17.Text+","+this.xpComboBox1.Text+","+this.xpTextBox7.Text+",'"+this.xpComboBox4.Text+"',"+this.xpTextBox9.Text+",'بدل تالف','"+this.xpTextBox11.Text+"','"+this.xpDateTimePicker1.Text+"')";
cm.ExecuteNonQuery();
// Start Command 2
cm.CommandText = "Delete From Stock where Bill_No='"+this.xpComboBox8.Text+"'";
cm.ExecuteNonQuery();
// If the transaction Compleat SuccessFully
myTransaction.Commit();
MessageBox.Show("تم استبدال البضاعة التالفة ببضاعة بدل تالف بنجاح تام","Saving");
}
else
{
MessageBox.Show("لقد تم إحباط العملية");
}
}
catch(Exception eee)
{
// if there is any error happend to the transaction
myTransaction.Rollback();
MessageBox.Show(eee.ToString());
}
finally
{
cnOledb.Close();
}
}بأبي انت وأمي يــــــــــــــــــا رسول اللــــــــــــــــــــــــــــــــه
تذكر دائما ً إنك لا تعيش وحدك
تذكر ان ثمة كثيرون يحتاجون لك
ربما يحتاجون اشياء اكثر بساطة من ان تلتفت انت إليها
ربما يحتاجون إلى كلمة تشجيع ..... في زمن سيطر فيه المال وضاع الحب وتم قتل المشاعر
ربما يحتاجون إلى كتاب ينقلهم إلى عالم .... لا يستطيع الإنسان الذهاب إليه أو العيش.
لا تمشي امامي فقد لا أتبعك
ولا تمشي خلفي فقد لا أقودك
ولكن امشي بجانبي ولنكن اصدقاء
كل زائد تافه مرفوض في عالم البرمجة
emadty@yahoo.com
اخى العزبز
انا اريد
tranasaction with dataadaptor not with command
if is the same send to me example
ماهو الـ DataAdapter عباره عن مجموعه من الـ Commands (h) فاسند الـ Transaction للـ UpdateCommand , و InsertCommand والخ.
يمكنك أيضا اذا كنت تعاني من مشكله مثل أنك تريد أن تقوم بـ Update لجدول قبل الآخر أو اضافة الصفوف الجديده أولا قبل المعدله أو أشياء كهذه أو لديك مشاكل بسبب الـ ForeignKeys والخ .. فاستخدم GetChanges الخاصه بالـ DataSet أو الخاصه بالجداول نفسها.
هذا الموضوع مغلق.