السّلام عليكم و رحمة الله و بركاته
إخواني الأكرم .. أمسيّة طيّبة مباركة إن شاء الله
فضلٌ و إحسانٌ منكم أن ترشدوني حول هذه الإشكاليّة التي عكّرت صفو مزاجي
قمت برفع مثال جاهز من هذا المنتدى و حاولت تحزيمه فقط للتجربة ببرنامج الستيب فاكتوري
المشروع بعد التحزيم يشتغل بدون أدنى مشكلة .. إلاّ هذه النقطة المشكلة ..
عند إضافة البيانات تخبرني الرسالة " تمت عمليّة الحفظ بنجاح "
ألقي نظرة على قاعدة البيانات بالقرص C .. بعد التحزيم .. فأجد البيانات التي قمت بحفظها لا يوجد لها أي أثر
المشروع على جهازي بالقرص E لكن بعد التحزيم و التسطيب طبعًا سيكون مسار الملف التنفيذي بالقرص C
كيف يمكن تغيير المسار أم هناك طريقة تجعل البرنامج يقرأ و يتعامل مع قاعدة البيانات أينما كان مسارها
كود قاعدة البيانات بالملف المفتوح هو كالآتي بالموديل :
كود :
Public Sub dbase_conn()
If con.State = ConnectionState.Open Then con.Close()
Try
con = New OleDbConnection("provider=Microsoft.Ace.OLEDB.12.0;Data Source=DOUSSADATABASE.accdb")
con.Open()
Catch ex As Exception
MessageBox.Show(ex.Message, "لم يتم الربط مع قاعدة البيانات", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly)
con.Close()
End
End Try
End Sub
أملي بالله إخواني الأفاضل ثم بكم تنويري حول هذه الإشكالية الهامّة بالنسبة لي
بارك الله فيكم و لكم مقدّمًا و جزاكم خير الجزاء
إحتراماتي
لما لا تضع قاعده البيانات بملف ال debug وعند التحزيم سوف تتحزم ايضا قاعده البيانات بنفس مسار البرنامج
واجعل جمله الاتصال تاخذ الاتصال من نفس المسار الخاص بالبرنامج.
كود :
con = New OleDbConnection("provider=Microsoft.Ace.OLEDB.12.0;Data Source=|datadirectory|\DOUSSADATABASE.accdb")
السّلام عليكم و رحمة الله و بركاته
بارك الله فيك و لك و في صحّتك و أوقاتك و بكل عائلتك الكريمة أخي الكريم " ربيع "
قاعدة البيانات موجودة فعلاً بلامسار المشار إليه من سيادتك
سأبني مشروع صغير جديد و سأتّبع بإذنه تعالى إرشاداتك و أخبرك بما توصّلت إليه
أكرّر شكري وامتناني
السّلام عليكم و رحمة الله و بركاته
إخواني الأكارم .. يبدو أنّ ظاهرة الحفظ السليم في قاعدة بيانات خالية تماما أصبحت تلازمني دومًا
بالوقت الذي جهّزت به مثالا لأقوم بتحزيمه .. ظهرت لي هذه المشكلة حيث يتم الحفظ مع ظهور رسالة تؤكّد ذلك لكن بقاعدة البيانات لا أجد شيئًا ..
أين الخلل سادتي الأكارم ..بالملف المرفق .. فعلاُ جد آسف عن كثرة تساؤلاتي .. إبتدأت مع هذه اللغة الجميلة منذ أيّام فقط و ما زلت لا أميّز يمينها من شمالها
بارك الله فيكم و لكم و جزاكم خير الجزاء مسبّقًا
تحياتي
قمت بالتعديل على المشروع صديقي
وأعذرني اذا غيرت قليلا بالكود الخاص بك
بالنسبه للترقيم ليس عليك ازعاج نفسك بعمله يدويا فقاعده البيانات تقوم به تلقائيا
فقط قم بجعل العمود autonumber.
السّلام عليكم و رحمة الله و بركاته
بارك الله فيك و جزاك خير الجزاء أخي الكريم " ربيع " على المساعدة .. أدعو الله أن يجعل كل حرف و كل فاصلة ممّا كتبته بمليون حسنة إن شاء الله ..
للأسف أخي الغالي لم اتمكن من مشاهدة المرفق بسبب الإشكالية بالصورة المرفقة أدناه
إحتراماتي مع التقييم
(30-11-17, 03:14 AM)sendbad100 كتب : [ -> ]السلام عليكم
تابع الموضوع التالي
http://vb4arb.com/vb/showthread.php?tid=22644
السّلام عليكم و رحمة الله و بركاته
تسلم أخي الحبيب الغالي " SENDBAD100 " على رابط الموضوع .. شاهدته سابقا لكني نسيته ..حيث يبدو أننا اأخذنا نفس الملف و الذي يتواجد بقسم الأمثلة و المشاريع ..لكن أخي قاعدة البيانات ليست داخل المشروع EXPLORER لأغير من خصائصها
إحتراماتي
قمت برفعه مره اخرى
على ايه حال اذا لم يعمل تفضل الكود ::
لاكن قم بتحويل عمود الترقيم بقاعدع البيانات الى auronumber
كود :
'فحص الاتصال بقاعدة البيانات
If con.State = ConnectionState.Open Then
con.Close()
End If
con.Open()
Dim cmd As New OleDbCommand()
cmd.CommandText = "insert into INFORMATION (FirstName,LastName,BirthDate,Gendre) values(@FirstName,@LastName,@BirthDate,@Gendre)"
cmd.Parameters.AddWithValue("@FirstName", (TextBox2.Text))
cmd.Parameters.AddWithValue("@LastName", (TextBox3.Text))
cmd.Parameters.AddWithValue("@BirthDate", (TextBox4.Text))
cmd.Parameters.AddWithValue("@Gendre", (ComboBox1.SelectedItem))
cmd.Connection = con
cmd.ExecuteNonQuery()
con.Close()
وهذا الكود لعرض البيانات في ال gridview
كود :
Private Sub fill_gridview()
Try
'فحص الاتصال بقاعدة البيانات
If con.State = ConnectionState.Open Then
con.Close()
End If
con.Open()
Dim strSQL As String = "SELECT * FROM INFORMATION ORDER BY BirthDate ASC"
Dim da As New OleDbDataAdapter(strSQL, con)
Dim ds As New DataSet
da.Fill(ds, "INFORMATION")
DataGridView1.DataSource = ds.Tables(0)
con.Close()
Catch ex As OleDbException
MsgBox(ex.Message, MsgBoxStyle.Critical, "SQL Error")
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "General Error")
End Try
End Sub
السّلام عليكم و رحمة الله و بركاته
تمام أخي الكريم " ربيع " .. الملف مفتوح إشتغل زي الفل و الحمد لله .. الفضل له ثم لك
بارك الله فيك دنيا و آخرة و رزقك من حيث لا تحتسب
لكني دخلت بدوّامة أخرى
أخذت ملفك مثلما هو لم أنقص ولم أضف شيئا .. و قمت بتحزيمه و قد أدرجت قاعدة البيانات
بعد التحزيم ..كل شيء تمام لكن عند محاولة الحفظ .. جاءتني هذه الرسالة نفسها برابط هذا الموضوع ..
بمعنى ما أخلص أنسى مشكلة تظهر لي مشكلة أكبر منها
إحتراماتي
حياك الله صديقي، لما لا تقوم بتحزيم قاعده البيانات مع تحزيم البرنامج نفسه، لماذا تقوم بنقل قاعده البيانات بعد التثبيت ؟؟
لم اقم بالكثير من التحزيم بالحقيقه انا انقل ملف ال debug بالعاده للزبون فقط.
على كلن انا لا اعرف ما برنامج التحزيم الذي تستخدمه
لكن هناك برامج كثيره تستكيع تحزيم قاعده البيانات مع البرنامج.