عايز اشغل الكود ده على ال #c - MOSTAFA.KAMEL - 30-04-17
كود قواعد بيانات الكود ده 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
RE: عايز اشغل الكود ده على ال #c - ابو ليلى - 30-04-17
السلام عليكم و رحمة الله و بركاته
مجرد تحويل ولا ادري هل يعمل ام لا, جربه على المشروع لديك و اي خطأ اطرحه هنا
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";
} catch (Exception ex) { Interaction.MsgBox(ex.Message); } }
RE: عايز اشغل الكود ده على ال #c - MOSTAFA.KAMEL - 30-04-17
المشاكل دى بس
\
RE: عايز اشغل الكود ده على ال #c - ابو ليلى - 30-04-17
يا مصطفى يا مصطفى انا ......... يا مصطفى
لو انك وضعت المشروع كان احسن للتعديل لان الكود يحتاج مراجعة و تجريب .
RE: عايز اشغل الكود ده على ال #c - MOSTAFA.KAMEL - 30-04-17
حاضر هرفع المشروع الان
المشروع ومعاه قاعدة البيانات تمام
RE: عايز اشغل الكود ده على ال #c - ابو ليلى - 01-05-17
جربه الان
PHP كود :
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);
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) { MessageBox.Show(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";
} catch (Exception ex) { MessageBox.Show(ex.Message); } } private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e) { try { LoadVideoName(int.Parse(ComboBox1.SelectedValue.ToString())); if (ComboBox1.Items.Count > 0) { LoadSubVideo(int.Parse(ComboBox2.SelectedValue.ToString())); if (ListBox1.Items.Count <= 0) { } else { }
} else { ComboBox2.DataSource = null; ListBox1.DataSource = null; }
} catch (Exception ex) {
}
}
private void ComboBox2_SelectedIndexChanged(object sender, EventArgs e) { try { if (ComboBox2.Items.Count > 0) { LoadSubVideo(int.Parse(ComboBox2.SelectedValue.ToString()));
if (ListBox1.Items.Count > 0) {
} else {
} } else { ListBox1.DataSource = null;
}
} catch (Exception ex) {
}
}
private void ListBox1_SelectedIndexChanged(object sender, EventArgs e) {
}
private void ListBox1_MouseClick(object sender, MouseEventArgs e) { if (ListBox1.SelectedValue != null) {
webBrowser1.Navigate(new Uri(ListBox1.SelectedValue.ToString()));
}
} } }
RE: عايز اشغل الكود ده على ال #c - MOSTAFA.KAMEL - 01-05-17
مفيش اخطاء ولكن مفيش بيانات من القاعده داخل البرنامج مع العلم ان هى نفس الاكواد بس بلغة الvb.net وتعمل 100% بس عايز اخلى البرنامج بلغة ال#C
ما الحل؟
RE: عايز اشغل الكود ده على ال #c - ابو ليلى - 01-05-17
السلام عليكم و رحمة الله و بركاته
الاخطاء موجودة و لكن استخدام كتلة 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;
public Form2() { InitializeComponent(); }
private void Form2_Load(object sender, EventArgs e) { LoadCategory(); comboBox1_SelectedIndexChanged(null,null);
}
public void LoadCategory() { sqlstr = "Select Id,VideoCategory From tblCategory"; da = new OleDbDataAdapter(sqlstr, con); ds = new DataSet();
ds.Clear(); da.Fill(ds, "tblCategory");
comboBox1.DataSource = ds.Tables[0]; comboBox1.DisplayMember = "VideoCategory"; comboBox1.ValueMember = "id";
}
public void LoadVideoName(int Value) {
sqlstr = "Select Id,VideoName From tblVideo Where CategoryId = @CategoryId"; da = new OleDbDataAdapter(sqlstr, con);
da.SelectCommand.Parameters.AddWithValue("@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"; } 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";
} catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (comboBox1.SelectedValue == null) { comboBox2.DataSource = null; } else { int val; Int32.TryParse(comboBox1.SelectedValue.ToString(), out val); LoadVideoName(val); }
comboBox2_SelectedIndexChanged(comboBox2, e);
}
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) {
if (comboBox2.SelectedValue == null) { listBox1.DataSource = null; } else { int val; Int32.TryParse(comboBox2.SelectedValue.ToString(), out val); LoadSubVideo(val); }
}
private void listBox1_MouseClick(object sender, MouseEventArgs e) { if (listBox1.SelectedValue != null) { webBrowser1.Navigate(new Uri(listBox1.SelectedValue.ToString())); }
} } }
RE: عايز اشغل الكود ده على ال #c - MOSTAFA.KAMEL - 02-05-17
تمام هة اشتغل بس لما باجى اشغل البرنامج الرسالة دى بتيجى وبعد كدة البرنامج بيشتغل عادى والبيانات بتيجى عايز اخفى الرسالة دى
RE: عايز اشغل الكود ده على ال #c - ابو ليلى - 02-05-17
هذه الرسالة تفيد بان رابط الفيديو غير صالح تاكد من الرابط او ضع دالة لفحص الروابط (في البرنامج الاول الخاص باضافة البيانات)
او ضع الجملة ضمن كتلة Try بدون عرض رسالة الخطأ (غير محبذ)
|