الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية استخدام Transaction مع جملة INSERT

بدأه N@b!L في 8 أكتوبر 2012 · 13 رد · 4,580 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم جميعا

هل يمكن استخدام Transaction بجملة insert into

او طريقة اخرى للاضافة للجدولين مرتبطين مرة واحدة ؟؟

وكل الاحترام و التقدير

تم تعديل هذه المشاركة بواسطة N@b!L في 8 أكتوبر 2012 في 17:13

#2

السلام عليكم ورحمه الله وبركاته

اخي ما عليك الا وضع جمل الادخال بين Begin Transaction و Commit Transaction

1

.:: Wish to become better and better ::.

#3

مثال لجملة Transaction

Begin Transaction

update Employee set EmpBasicSalary = EmpBasicSalary - 100 where EmpCode = '1'
begin
if @@ERROR <> 0
Rollback
end
update Employee set EmpBasicSalary = EmpBasicSalary + 100 where EmpCode = '2'
Begin
if @@ERROR <> 0
RollBack
end
commit tran
1

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#4

شكرا اخوتي الكرام على المساعدة و التوضيح

ما هي الصيغة البرمجية بالسي شارب اذا امكن

وشكرا مرة اخرى

#5
N@b!L كتب:

شكرا اخوتي الكرام على المساعدة و التوضيح

ما هي الصيغة البرمجية بالسي شارب اذا امكن

وشكرا مرة اخرى

يمكنك عمل اجراء مخزن ثم تنفيذه من خلال كائن الامر الموجود ضمن الADO.NET

_____________________________

تم تعديل هذه المشاركة بواسطة ثعلب البرمجه في 12 أكتوبر 2012 في 16:12

#6

المشكلة يا اخوتي الكرام

اريد اضافة بيانات في جدولين مرتبطين بعلاقة واحد لواحد ؟؟

جربت اكثر من مطريقة ولم يفلح الامر .... :(

#7

قد يفيدك هذا الكود والباقي عليك في البرنامج

CREATE PROCEDURE dbo.spAdd
	@val1 int,
	@val2 nvarchar(50),

	@valA  nvarchar(50),
	@valB nvarchar(50),
	@valC int
AS
Begin 
Begin Transaction
	insert into dbo.Table_1 (Col1,col2) values (@val1,@val2)
	insert into dbo.Table_2  values (@@identity,@valA,@valB,@valC)
if @@ERROR = 0
	commit
else
begin
	raiserror('عفوا حدث خطأ الرجاء اعادة المحاولة',14,1)
	rollback
end
end

تم تعديل هذه المشاركة بواسطة KARIMSOFT في 24 أكتوبر 2012 في 11:58

1
#8

اخي انا مبتدأ بـ SQL لقد تعلمتها من النت ولا اجيديها بشكل كامل

لو تفضلت كيف ساقوم بتركيبه وبرمجته

لو بشكل سريع

كل الشكر و الاحترام

#9

انظر هذا الكود

 SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString1"].ConnectionString);

        try
        {
            con.Open();
        SqlCommand com = new SqlCommand("dbo.spAdd", con);
        com.CommandType = CommandType.StoredProcedure;
        com.Parameters.Add("val1", SqlDbType.Int).Value = val1.ToString();
        com.Parameters.Add("val2", SqlDbType.NVarChar, 50).Value = val2.ToString();

        com.Parameters.Add("valA", SqlDbType.NVarChar, 50).Value = valA.ToString();
        com.Parameters.Add("valB", SqlDbType.NVarChar, 50).Value = valB.ToString();
        com.Parameters.Add("valC", SqlDbType.Int).Value = valC.ToString();

com.ExecuteNonQuery ();
        }
        catch (Exception ex)
        {
         MessageBox.Show(ex.Message);
        }
  finally
        {
            con.Close();
        }
1
#10

اخي السؤال

 

هذا التعامل مع جدولين داخل sql server

 

مع c#

 

ماذا لو كان هناك مثلا

 

بالجدول الأول قيمه واحده __ بينما الجدول الثاني اكثر من قيمة

 

يعني مثلا لو عندك

 

جدول موظف

جدول دورات الموظف .

____________________________________________

 

الدورات اكثر من دورة .

 

______________________________________________

 

مثلا جدول الاخبار _

 

تبي تضيف له صور يعني تقريبا خمس صور مع الخبر الواحد

 

________________________________________________________

 

اتمنى شرحه بالتفصيل

#11
public bool insertTransaction(string[] sqlStatments)        {            SqlConnection conn = new SqlConnection(myConnString);            conn.Open();            SqlTransaction trans = conn.BeginTransaction("TRANSACTION NAME");            try            {                for (int i = 0; i < sqlStatments.Length; i++)                {                    SqlCommand comm = new SqlCommand(sqlStatments, conn, trans);                    comm.ExecuteNonQuery();                }                trans.Commit();                return true;            }            catch (Exception e )            {                trans.Rollback();                return false;            }        }

استخدم الدالة السابقة , ثم قم باستدعائها كما يلي :

string[] sqlStatments = 
            {
                "insert into users(username,password,role,isactive,isdeleted) values('sa','123',1,1,0)",
                "insert into testing(firstname,secondname,thirdname) values('test','test','test')"
            };
            db.insertTransaction(sqlStatments);

بالتوفيق

تم تعديل هذه المشاركة بواسطة Marwan Alakhras في 10 أكتوبر 2013 في 13:16

<<<<<<<< NOTHING BEAT HUMAN BRAIN >>>>>>>>>>>>


https://itunes.apple.com/us/app/ding-dang/id564583614?mt=8

#12

السلام عليكم ورحمة الله وبركاته

يوجد موضوع مشابه فى الرابط التالى، وستجد فى الرد التاسع مثالاً يحتوى على مشروع متكامل مع قاعدة البيانات ولكن اقرأ الردود كلها فكل منها فيه فائدة

 

/index.php/topic/281054-%D8%A7%D9%84%D8%A7%D8%B6%D8%A7%D9%81%D8%A9-%D8%A7%D9%84%D9%89-%D8%AC%D8%AF%D9%88%D9%84%D9%8A%D9%86-%D9%85%D8%B1%D8%AA%D8%A8%D8%B7%D9%8A%D9%86/

 

دعائى بالتوفيق للجميع

أدعو الله أن يجعل أعمالنا خالصة لوجهه الكريم --- وأن ينفعنا بما علمنا

Dr Sayed Tohamy

Programming Instructor

مدرب برمجة

---------------

EmaSoft2000

-------------------

#13

فكرتك اخي Marwan Alakhras جمله جدا شكرا لك

مواضيع مشابهة