30-04-17, 06:25 PM (آخر تعديل لهذه المشاركة : 30-04-17, 07:56 PM {2} بواسطة MOSTAFA.KAMEL.)
كود قواعد بيانات الكود ده vb.net وعايزو يشتغل على ال #c
كود :
Sub LoadCategory()
Try
sqlstr = "Select Id,VideoCategory From tblCategory"
da = New OleDbDataAdapter(sqlstr, con)
ds = New DataSet
'
ds.Clear()
da.Fill(ds, "tblCategory")
'
ComboBox1.Items.Clear()
ComboBox1.DataSource = ds.Tables("tblCategory")
ComboBox1.ValueMember = "id"
ComboBox1.DisplayMember = "VideoCategory"
Catch ex As Exception
If ex.Message.ToString.ToLower.Contains("cannot open database it may not be a database that your application recognizes") Then
MsgBox("حدثت مشكلة فى البرنامج و جارى تحميل ملف حل المشكلة الرجاء تيطيبة بعد اكتمال التحميل و عدم غلق البرنامج الا مع اكتمال التحميل", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "خطأ")
My.Computer.Network.DownloadFile("https://download.microsoft.com/download/2/4/3/24375141-E08D-4803-AB0E-10F2E3A07AAA/AccessDatabaseEngine.exe", Application.StartupPath & "\AccessDatabaseEngine.exe")
'كدة هيحمل الملف اللى هيصلح الرسالة التانية جنب البرنامج
IO.File.Open(Application.StartupPath & "\AccessDatabaseEngine.exe", IO.FileMode.Open)
ElseIf ex.Message.ToString.ToLower.Contains("the microsoft.ace.oledb.12.0 provider is not registered on the local machine")
MsgBox("حدثت مشكلة فى البرنامج و جارى تحميل ملف حل المشكلة الرجاء تيطيبة بعد اكتمال التحميل و عدم غلق البرنامج الا مع اكتمال التحميل", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "خطأ")
My.Computer.Network.DownloadFile("https://download.microsoft.com/download/2/4/3/24375141-E08D-4803-AB0E-10F2E3A07AAA/AccessDatabaseEngine.exe", Application.StartupPath & "\AccessDatabaseEngine.exe")
IO.File.Open(Application.StartupPath & "\AccessDatabaseEngine.exe", IO.FileMode.Open)
End If
End Try
End Sub
Sub LoadVideoName(ByVal Value As Integer)
Try
sqlstr = "Select Id,VideoName From tblVideo Where CategoryId = @CategoryId"
da = New OleDbDataAdapter(sqlstr, con)
'
da.SelectCommand.Parameters.Add(New OleDbParameter("@CategoryId", Value))
'
If ds.Tables.Contains("tblVideo") Then
ds.Tables("tblVideo").Clear()
End If
'
da.Fill(ds, "tblVideo")
'
ComboBox2.DataSource = ds.Tables("tblVideo")
ComboBox2.ValueMember = "id"
ComboBox2.DisplayMember = "VideoName"
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Sub LoadSubVideo(ByVal Value As Integer)
Try
sqlstr = "Select Id,SubVideo,LinkVideo From tblSubVideo Where VideoId = @VideoId"
da = New OleDbDataAdapter(sqlstr, con)
da.SelectCommand.Parameters.Add(New OleDbParameter("@VideoId", Value))
'
If ds.Tables.Contains("tblSubVideo") Then
ds.Tables("tblSubVideo").Clear()
End If
'
da.Fill(ds, "tblSubVideo")
'
ListBox1.DataSource = ds.Tables("tblSubVideo")
ListBox1.ValueMember = "LinkVideo"
ListBox1.DisplayMember = "SubVideo"
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
30-04-17, 09:18 PM (آخر تعديل لهذه المشاركة : 30-04-17, 09:24 PM {2} بواسطة ابو ليلى.)
السلام عليكم و رحمة الله و بركاته
مجرد تحويل ولا ادري هل يعمل ام لا, جربه على المشروع لديك و اي خطأ اطرحه هنا
PHP كود :
public void LoadCategory() { try { sqlstr = "Select Id,VideoCategory From tblCategory"; da = new OleDbDataAdapter(sqlstr, con); ds = new DataSet(); ds.Clear(); da.Fill(ds, "tblCategory"); ComboBox1.Items.Clear(); ComboBox1.DataSource = ds.Tables("tblCategory"); ComboBox1.ValueMember = "id"; ComboBox1.DisplayMember = "VideoCategory"; } catch (Exception ex) { if (ex.Message.ToString.ToLower.Contains("cannot open database it may not be a database that your application recognizes")) { Interaction.MsgBox("حدثت مشكلة فى البرنامج و جارى تحميل ملف حل المشكلة الرجاء تيطيبة بعد اكتمال التحميل و عدم غلق البرنامج الا مع اكتمال التحميل", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "خطأ"); My.Computer.Network.DownloadFile("https://download.microsoft.com/download/2/4/3/24375141-E08D-4803-AB0E-10F2E3A07AAA/AccessDatabaseEngine.exe", Application.StartupPath + "\\AccessDatabaseEngine.exe"); //كدة هيحمل الملف اللى هيصلح الرسالة التانية جنب البرنامج IO.File.Open(Application.StartupPath + "\\AccessDatabaseEngine.exe", IO.FileMode.Open); } else if (ex.Message.ToString.ToLower.Contains("the microsoft.ace.oledb.12.0 provider is not registered on the local machine")) { Interaction.MsgBox("حدثت مشكلة فى البرنامج و جارى تحميل ملف حل المشكلة الرجاء تيطيبة بعد اكتمال التحميل و عدم غلق البرنامج الا مع اكتمال التحميل", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "خطأ"); My.Computer.Network.DownloadFile("https://download.microsoft.com/download/2/4/3/24375141-E08D-4803-AB0E-10F2E3A07AAA/AccessDatabaseEngine.exe", Application.StartupPath + "\\AccessDatabaseEngine.exe"); IO.File.Open(Application.StartupPath + "\\AccessDatabaseEngine.exe", IO.FileMode.Open);
}
} }
public void LoadVideoName(int Value) {
try { sqlstr = "Select Id,VideoName From tblVideo Where CategoryId = @CategoryId"; da = new OleDbDataAdapter(sqlstr, con); da.SelectCommand.Parameters.Add(new OleDbParameter("@CategoryId", Value)); if (ds.Tables.Contains("tblVideo")) { ds.Tables("tblVideo").Clear(); } da.Fill(ds, "tblVideo"); ComboBox2.DataSource = ds.Tables("tblVideo"); ComboBox2.ValueMember = "id"; ComboBox2.DisplayMember = "VideoName"; } catch (Exception ex) { Interaction.MsgBox(ex.Message); } } public void LoadSubVideo(int Value) { try { sqlstr = "Select Id,SubVideo,LinkVideo From tblSubVideo Where VideoId = @VideoId"; da = new OleDbDataAdapter(sqlstr, con); da.SelectCommand.Parameters.Add(new OleDbParameter("@VideoId", Value)); if (ds.Tables.Contains("tblSubVideo")) { ds.Tables("tblSubVideo").Clear(); } da.Fill(ds, "tblSubVideo"); ListBox1.DataSource = ds.Tables("tblSubVideo"); ListBox1.ValueMember = "LinkVideo"; ListBox1.DisplayMember = "SubVideo";
using Gecko; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.OleDb; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Net;
namespace Al_Emlaq_TV { public partial class Form1 : Form { OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|db.accdb;Jet OLEDB:Database Password=01207600205"); OleDbDataAdapter da = null; DataSet ds= null; string sqlstr = null; private System.Net.WebClient wc = new System.Net.WebClient(); private void wc_download_combleted() {
} public Form1() { InitializeComponent(); }
private void Form1_Load(object sender, EventArgs e) { //wc.DownloadFileAsync(new System.Uri("http://dl.dropboxusercontent.com/s/o5vn683zoqsfqor/db.accdb"), Application.StartupPath + "\\db.accdb"); InitializeComponent(); LoadCategory(); } public void LoadCategory() { try { sqlstr = "Select Id,VideoCategory From tblCategory"; da = new OleDbDataAdapter(sqlstr, con); ds = new DataSet();
ds.Clear(); da.Fill(ds, "tblCategory");
ComboBox1.Items.Clear(); ComboBox1.DataSource = ds.Tables["tblCategory"]; ComboBox1.ValueMember = "id"; ComboBox1.DisplayMember = "VideoCategory"; } catch (Exception ex) { //if (ex.Message.ToString.ToLower.Contains("cannot open database it may not be a database that your application recognizes")) // { //Interaction.MsgBox("حدثت مشكلة فى البرنامج و جارى تحميل ملف حل المشكلة الرجاء تيطيبة بعد اكتمال التحميل و عدم غلق البرنامج الا مع اكتمال التحميل", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "خطأ"); //My.Computer.Network.DownloadFile("https://download.microsoft.com/download/2/4/3/24375141-E08D-4803-AB0E-10F2E3A07AAA/AccessDatabaseEngine.exe", Application.StartupPath + "\\AccessDatabaseEngine.exe"); ////كدة هيحمل الملف اللى هيصلح الرسالة التانية جنب البرنامج //IO.File.Open(Application.StartupPath + "\\AccessDatabaseEngine.exe", IO.FileMode.Open); // } //else if (ex.Message.ToString.ToLower.Contains("the microsoft.ace.oledb.12.0 provider is not registered on the local machine")) // { //Interaction.MsgBox("حدثت مشكلة فى البرنامج و جارى تحميل ملف حل المشكلة الرجاء تيطيبة بعد اكتمال التحميل و عدم غلق البرنامج الا مع اكتمال التحميل", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "خطأ"); //My.Computer.Network.DownloadFile("https://download.microsoft.com/download/2/4/3/24375141-E08D-4803-AB0E-10F2E3A07AAA/AccessDatabaseEngine.exe", Application.StartupPath + "\\AccessDatabaseEngine.exe"); //IO.File.Open(Application.StartupPath + "\\AccessDatabaseEngine.exe", IO.FileMode.Open);
}
} public void LoadVideoName(int Value) {
try { sqlstr = "Select Id,VideoName From tblVideo Where CategoryId = @CategoryId"; da = new OleDbDataAdapter(sqlstr, con);
الاخطاء موجودة و لكن استخدام كتلة Try و تعطيل ظهور الاخطاء هو السبب
اخي الكريم الخطأ يتاتى من طريقة التشفير الخاص بالقاعدة و ارتباطه بنسخة المزود و اصداره و لو انك جربت تتصل بقاعدة غير محمية لاشتغل البرنامج بشكل جيد و للتخلص من هذه المشكلة ساقترح عليك ضبط طريقة التشفير وفق التالي اولاً اذهب الى برنامج الاكسس و في التبويب ملف اذهب لخيارات ثم اعدادت العميل و اذهب الى الاسفل (خيارات متقدمة) تاكد من التالي وضع الفتح الافتراضي=مشترك تامين السجلات الافتراضي=بلا تامين ثم حدد استخدام التشفير القديم بدل استخدام التشفير الافتراضي و اذا كانت النسخة لديك اجنبية Under File - Options - Client Settings (scroll to the bottom)
Default Open Mode = Shared
Default record locking = No Locks
Encryption Method = Use legacy
الان اذهب و شفر قاعدة البيانات من جديد (شفر نسخة جديدة من القاعدة) و الان مع الكود مع بعض التعديلات
PHP كود :
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.OleDb; using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace Al_Emlaq_TV { public partial class Form1 : Form { OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\db.accdb;Jet OLEDB:Database Password=01207600205"); OleDbDataAdapter da = null; DataSet ds = null; string sqlstr = null;