السلام عليكم
أحتاج موضوع
عن إستخدام SqlDataAdapter
بدون إستخدام GridView
أريد عرض وتعديل وإضافة وحذف الdata
في نفس فورم المكون مجموعة TextBox
يعني الحقل الأول مع الTextBox الأول
وهكذا ............
وشكرا لكم
السلام عليكم
أحتاج موضوع
عن إستخدام SqlDataAdapter
بدون إستخدام GridView
أريد عرض وتعديل وإضافة وحذف الdata
في نفس فورم المكون مجموعة TextBox
يعني الحقل الأول مع الTextBox الأول
وهكذا ............
وشكرا لكم
لا إلة إلا أنت سبحانك إني كنت من الظالمين
السلام عليكم و رحمة الله و بركاته
استاذي الفاضل
يمكن ذلك عن طريق اضافة أوامر التحديد ، اضافة ، تعديل و حذف لل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
تقبل خالص تحياتي
شكرا لك أخي العزيز
wisamsalah
على المجهود الطيب
جعلها الله في ميزان حسناتك
لا إلة إلا أنت سبحانك إني كنت من الظالمين