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

Sql Data Adapter (DataSet)?

بدأه wael 14 في 16 فبراير 2011 · 2 رد · 685 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أحتاج موضوع

عن إستخدام SqlDataAdapter

بدون إستخدام GridView

أريد عرض وتعديل وإضافة وحذف الdata

في نفس فورم المكون مجموعة TextBox

يعني الحقل الأول مع الTextBox الأول

وهكذا ............

وشكرا لكم

لا إلة إلا أنت سبحانك إني كنت من الظالمين

#2

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

استاذي الفاضل

يمكن ذلك عن طريق اضافة أوامر التحديد ، اضافة ، تعديل و حذف للSQLDataAdapter ثم تقوم بعمل اجراءات على البيانات في الDatatable و في النهاية تقم باعطاء أمر التحديث للSQLDataAdapter

فمثلا يوجد لي قاعدة بيانات بها جدول واحد عبارة عن عمودان الأول تسمي ID نوها int و الأخر Name و نوها NVarChar(500)

قم بتعريف SLQDataAdapter و هنا سأسميه da و DataTable و ساساميه dt

ثم اضف السطور التالي

da = new SqlDataAdapter();
                da.DeleteCommand = new SqlCommand("delete from TestTable where ID = @ID", con);
                da.DeleteCommand.Parameters.Add("@ID", SqlDbType.Int, 10, "ID");
                da.SelectCommand = new SqlCommand("select TestTable.ID, TestTable.Name from TestTable", con);
                da.InsertCommand = new SqlCommand("insert into TestTable(ID,Name) values(@ID,@Name)", con);
                da.InsertCommand.Parameters.Add("@ID", SqlDbType.Int, 10, "ID");
                da.InsertCommand.Parameters.Add("@Name", SqlDbType.NVarChar, 500, "Name");
                da.UpdateCommand = new SqlCommand("update TestTable  Set ID = @ID , Name = @Name where TestTable.ID = @OldID;", con);
                da.UpdateCommand.Parameters.Add("@ID", SqlDbType.Int, 10, "ID");
                da.UpdateCommand.Parameters["@ID"].SourceVersion = DataRowVersion.Current;
                da.UpdateCommand.Parameters.Add("@Name", SqlDbType.NVarChar, 500, "Name");
                da.UpdateCommand.Parameters["@Name"].SourceVersion = DataRowVersion.Current;
                da.UpdateCommand.Parameters.Add("@OldID", SqlDbType.Int, 10, "ID");
                da.UpdateCommand.Parameters["@OldID"].SourceVersion = DataRowVersion.Original;
                da.Fill(dt);

ها انت ذا جاهز

فاذا اردت اضافة سطر للجدول استخدم العبارة التالية

dt.Rows.Add(new object[] {txtID.Text, txtName.Text});

باعتبار ان txtID.text و txtName.text هما يحملان البيانات التي سنضيفها للجدول

و عند التحديث

dt.Rows[CurrentRow - 1]["ID"] = txtID.Text;
                    dt.Rows[CurrentRow - 1]["Name"] = txtName.Text;

باعتبار الCUrrentRow هو رقم السطر الحقيقي و لأن الindex الخاص به تبدأ من الصفر و ليس الواحد طرح منه 1

و عند الحذف

dt.Rows[CurrentRow - 1].Delete();

و في النهاية قم بتنفيذ السطر التالي

da.Update(dt);

سيقوم بكل ما تريده

و عموما ارفقت لك مشروع يقوم بذلك علىالجدول الذي ذكرته بالمثال بالاعلي و مرفق معه قاعدة البيانات لتقوم بتجربته علما باني استخدم Visual Studio 2010 و SQL Server 2008 R2

تقبل خالص تحياتي

SQLAdapter Test.zip

1
#3

شكرا لك أخي العزيز

wisamsalah

على المجهود الطيب

جعلها الله في ميزان حسناتك

لا إلة إلا أنت سبحانك إني كنت من الظالمين

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