لو سمحتم يا جماعة ممكن تقولولى إزاى أحفظ بيانات موجودة فى داتا جريد فيو
فى قاعدة بيانات أكسيس
ولكن بالطريقة المتصلة
أنا بعرف أعملها بالطرقة المنفصلة سهلة
إنما المتصلة مش لاقيلها حل بصراحة يا جماعة
ممكن
ألف شكر يا إخوانى
لو سمحتم يا جماعة ممكن تقولولى إزاى أحفظ بيانات موجودة فى داتا جريد فيو
فى قاعدة بيانات أكسيس
ولكن بالطريقة المتصلة
أنا بعرف أعملها بالطرقة المنفصلة سهلة
إنما المتصلة مش لاقيلها حل بصراحة يا جماعة
ممكن
ألف شكر يا إخوانى
عندما تضيق بك الدنيا فلا تقل يارب عندى هم كبير ولكن قل يا هم عندى رب كبيييير
اللهم إنى أتيت بابك مستغفراً فإن غفرت لى وأدخلتنى فأنت أهلٌ لذلك
وإن لم تغفر لى وطردتنى فأنا أهلٌ لذلك
تنفيذ جملة INSERT لكل سطر من سطور الداتا جريد فيو
تحياتي...
ألف شكر على المتابعة يا أخ محمد ولكن أنا عايز أعرف الكود
إزاى أعمل insert للداتاجريد فيو
وشكرا مرة أخرى يا أخى فى الله
عندما تضيق بك الدنيا فلا تقل يارب عندى هم كبير ولكن قل يا هم عندى رب كبيييير
اللهم إنى أتيت بابك مستغفراً فإن غفرت لى وأدخلتنى فأنت أهلٌ لذلك
وإن لم تغفر لى وطردتنى فأنا أهلٌ لذلك
إذا لم يكن عندك تحفظ على الفكرة, هذا مثال عالطاير بدون تجريب :
' كائن الربط
Dim con As New SqlConnection("جملة الربط")
' كائن أوامر سكل
Dim cmd As SqlCommand = con.CreateCommand()
' جملة زيادة التسجيلات
cmd.CommandText = "INSERT INTO table1 (fld1, fld2, fldN) VALUES(@prm1, @prm2, @prmN)"
' زيادة المعاملات
Dim prm As SqlParameter
prm = cmd.CreateParameter()
prm.ParameterName = "@prm1"
prm.DbType = DbType.Int32
cmd.Parameters.Add(prm)
prm = cmd.CreateParameter()
prm.ParameterName = "@prm2"
prm.DbType = DbType.DateTime
cmd.Parameters.Add(prm)
prm = cmd.CreateParameter()
prm.ParameterName = "@prmN"
prm.DbType = DbType.Decimal
cmd.Parameters.Add(prm)
' ربط الإتصال
con.Open()
' تسجيل سطور الداتاجريد
For Each row As DataGridViewRow In DataGridView1.Rows
If Not row.IsNewRow Then
' تحديد المعاملات بمحتوى خلايا السطر
cmd.Parameters("@prm1").Value = row.Cells(0).Value
cmd.Parameters("@prm2").Value = row.Cells(1).Value
cmd.Parameters("@prmN").Value = row.Cells(2).Value
' تسجيل السطر
cmd.ExecuteNonQuery()
End If
Next
' تحرير الذاكرة
con.Dispose()
con = Nothing
cmd.Dispose()
cmd = Nothingتحياتي أخي حسام :)
السلام عليكم
شكرا جزيلا أخى محمد رضى
على المتابعة والرد على سؤالى وتعبتك معايا
وأسف لأنى إتأخرت فى الرد يا أخى بس علشان إجراءات الجيش بقى وإنت عارف بتبقى متعبة
ومكنتش فى البيت
أنا جربت طريقتك ولكن للأسف طلعت رسالة إعتراض بتقول
The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.
رسالة كبيرة أوى مش عارف ليه
الرسالة طلعت حاسيت إن البرنامج بيزعئلى
أنا متهيألى الخطأ ده كبير جدا ومكنش المفروض إنى أتجرأ وأغلط
علشان كده الرسالة كبيرة :lol:
ياريت الحل يا أخ محمد
والبرنامج مرفق الكود فى الفورمة الأولى
عندما تضيق بك الدنيا فلا تقل يارب عندى هم كبير ولكن قل يا هم عندى رب كبيييير
اللهم إنى أتيت بابك مستغفراً فإن غفرت لى وأدخلتنى فأنت أهلٌ لذلك
وإن لم تغفر لى وطردتنى فأنا أهلٌ لذلك
المفروض أن الكود يعمل مع داتا جريد فيو غير مرتبطة بأي DataSource. يعني أنك تكتب البيانات على الداتا جريد فيو و من تمتة الكود يقوم بقراءتها من الداتا جريد فيو ثم عن طريق جمل Insert يزيدها على الجدول على قاعدة البيانات.
المشروع الدي أرفقت يقوم بقراءة البيانات من الجدول من قاعدة البيانات إلى الداتا جريد فيو و تريد حفظ البيانات بعد تحريرها إلى نفس الجدول على نفس قاعدة البيانات. بالطبع سيتم رفع استثناءات لأن Insert تحاول زيادة بيانات موجودة أصلا على الجدول خصوصا إدا كان هناك أعمدة لا تقبل تكرار البيانات.
أنا أرى أن الحل الأمثل هو استخدام الوضع المنفصل لهدا المشروع. أو تحميل البيانات من قاعدة البيانات إلى الداتا جريد فيو و محو محتوى الجدول حتى يستطيع الكود حفظ محتوى الداتا جريد فيو في نفس الجدول بعد تحرير البيانات. هده الطريقة غير فعالة خصوصا مع كبر عدد البيانات المراد تحميلها و حفظها مع مرور الوقت.
تحياتي...
تم تعديل هذه المشاركة بواسطة محمد رضى في 2 نوفمبر 2009 في 14:03
إذا لا يمكن حفظ التغيرات من الداتا جريد فيو إلى قاعدة البيانات فى الوضع المتصل
شكرا جزيلا يا محمد
ألف شكر على تعبك معايا
اللهم إجعل ذلك فى ميزان حسناته :)
عندما تضيق بك الدنيا فلا تقل يارب عندى هم كبير ولكن قل يا هم عندى رب كبيييير
اللهم إنى أتيت بابك مستغفراً فإن غفرت لى وأدخلتنى فأنت أهلٌ لذلك
وإن لم تغفر لى وطردتنى فأنا أهلٌ لذلك
أخي الكريم حسام, لا توجد عبارة "لا يمكن" في مجال البرمجة غير أنه إذا أردت كتابة كود من الصفر لحفظ التغييرات و زيادة البيانات الجديدة و حذف الأسطر المحذوفة فأنت بهذا تعيد اختراع العجلة من جديد لأن إطار الدوت نت يقوم بهذا العمل كله من أجلك في الوضع المنفصل,
تحياتي...
مفهوم يا أستاذ محمد
شكرا على المتابعة
عندما تضيق بك الدنيا فلا تقل يارب عندى هم كبير ولكن قل يا هم عندى رب كبيييير
اللهم إنى أتيت بابك مستغفراً فإن غفرت لى وأدخلتنى فأنت أهلٌ لذلك
وإن لم تغفر لى وطردتنى فأنا أهلٌ لذلك
الطريقة بطيئة جداً خصوصا اذا كان عدد الصفوف كبير
انا عندي داتا جريد فيها بيانات جبتها من الاكسيل واريد حفظها دفعة واحدة في جدول في الاكسس
السبب انه بيجلي داتا كبيرة لازم يتم حفظه في الجدول والدات ديه بتيجي في صورة اكسل
ارجو المساعدة جراكم الله خيرا
بحلم بشركة برمجة عربية كبيرة تنافس في كل الاسواق وعلي كل مستويات البرامج
من اول ال Operating System الي البرامج المكتبية والمحاسبة وادراة قواعد البيانات ...... الخ
يارب قدرني علي كده