الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

بعض الامور الإحترافية فى Ado.net 2005 مع Vb.net و C#.net

مغلق
بدأه الأخ المسلم (أسامه عبد الصادق) في 8 فبراير 2008 · 7 رد · 2,560 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

سوف أقدم لاعضاء المنتدى المبتدئين مثلى بعض الامور الإحترافيه فى ADO.Net مع VB.Net و C#.net .

ولا أقصد بالأمور الإحترافيه فى التعامل مع الادو نفسه ولكن فى كيفيه التعامل مع الأدو لكى

أنجز شغلى وبرنامجى فى أسرع وقت ــ وإن كانت الامور التى سوف اتحدث عنها بالنسبة

للأدو ليست بالخفية عنكم ــ ولكن فى كيفيه عدم تكرارها وعدم تكرار الأكواد الروتينيه فى

الأدو .

ولكى نلخص ما أقدمه

سوف أشرح كيفيه عمل تلك المكتبه وأتركك لتطورها

وقد كنت قد رفعتها للمنتدى من قبل على هذا الرابط .

/index.php?showtopic=149166

فأريد من أحد الأعضاء ولو واحد فقط يرد على هل أكمل وأشرح كيفيه عمل تلك المكتبه ام

الموضوع بالهين .......... انا أقدم تلك المادة للمبتدئين مثلى لكى نخطوا خطوه تجاه

الإحتراف .

[/وسط]

#2

اهلين اخي العزيز

في البدايه الان قمت با تحميل المكتبه التي قمت بعملها وان شاء الله سوف ارائها

واضع مقترحاتي عليها اما انا فاعتقد اني مثلك مبتدى بس لدي بعض الطرق الرائعه في اختصار امور ADO>NET

اخي احب ان تكمل هذا المشوار الذي بداته لتوك وان شاء الله سوف نعرف طرق جديده والكل يضع مالديه

وانا انتظر تكمل المشوارك بفارغ الصبر

تحياتي لك اخي

#3

يعنى ده معناه أن مافيش حد لازمه الكلام ده .

لم أقصد ردك يا أستاذ فايز السدله وإنما عدم التفاعل .

[/وسط]

#4

اخي الكريم

نشكرك على مشاركتك

ارجو منك الاستمرار

ها انا بانتظار جديدك

1145392391.gif
#5

السلام عليكم ورحمة الله وبركاته

أولا : قبل البدئ أريد أن أأكد أن هذه المشاركات للمبتدئين الذين يسعون لخطو خطوه تجاه الإحتراف .

ثانيا : سوف أفترض أنك تعلم الأكواد البسيطه فى الآدو .

ما أريد ان اذكره فى تلك المشاركات هو كيف تتغلب على روتين أكواد الآدو ، وأعنى بالروتين تكرار الاكواد بطريقه تجعلك تكرر الكود فى البرنامج الواحد عشرات المرات ، فأردت ان أصنع مكتبه تنجز لى ــ ولغيرى ممن يستخدم تلك المكتبه ــ البرنامج الذى أريد ان أكتبه فى دقائق ــ ولاسيما الواجهات المألوفه والمعتاده ــ مثل شاشه إدخال بيانات الموظفين أو العملاء أو الطلاب ..... إلخ . فتلك الواجهات لا يوجد تغير فيما بينها إلا أسماء الجداول الحقول ، وتراك تكتب صفحة كود مكونه من أكثر 50 سطر لكى تنهى تلك الواجهه بشكل شبه تام ، من بحث سريع عن طريق الإسم او الرقم ، وتقرير بسيط ، ومفاتيح للتنقل بين السجلات ، وإضافة سجل جديد ، وإغلاقه ، ومسح ، وتعديل ، وحفظ . طبعا سوف أفترض أنك تعلم أصلا تلك الأكواد وسوف ندخل فى مباشره فى تلخيصها . من الماكد ان بعضا ممن قرءوا تلك الكلمات لم يعلموا مقصدى ........... إليك بمثال . عندما تريد ان تفتح سجل جديد فى الــ DataSet او الــ DataTable ومن ثم إلى قاعدة البيانات أيا كانت قاعده البيانات سوف تكتب كود يشبه ذلك :

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click



Me.BindingContext(DS.Tables("Info")).EndCurrentEdit()

Me.BindingContext(DS.Tables("Info")).AddNew()



End Sub

وما رايك ان يكون الوكد مثل ذلك :

L.AddNew

فقط !!! نعم فقط

ولو نظرت لكود المسح مثلا لكان مثل ذلك :

 Me.BindingContext(DS.Tables("Info")).EndCurrentEdit()

Me.BindingContext(DS.Tables("Info")).RemoveAt(Me.BindingContext(DS.Tables("Info")).Position)

او ذلك

 sql = "Delete * from info where ID = '" & textbox1.text & "'"

If conn.State <> ConnectionState.Open Then conn.Open()

cmd = New OleDbCommand(sql, conn)

cmd.ExecuteNonQuery()

If conn.State <> ConnectionState.Closed Then conn.Close()

وما رايك أن يكون مثل ذلك :

L.Delete("ID",textbox1.text)

ولو نظرت لكود التعديل

لوجت جمله طويله عريضه من جمل SQL لكى أعدل سجل ..... يعنى السجل الذى سوف يعدل سوف يكود أسهل لى أن أعدله بيدى :

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

sql = "Update info set ID = " & texbox1.text & "," & " Name = '" & textbox2.text & "' where ID = " & textbox1.text

If conn.State <> ConnectionState.Open Then conn.Open()

cmd = New OleDbCommand(sql, conn)

cmd.ExecuteNonQuery()

If conn.State <> ConnectionState.Closed Then conn.Close()

End Sub

مثل هذا إن كنت تستخدم مثل طريقتى التى سئمت منها .

ما رايك أن تكتب لعمل مثل ذلك الامر

L.Edit("ID",textbox1.text)

طبعا الفرق واضح جدا

ويجمل الفرق فى الكودين التاليين:

الطريقة التى نود التخلص منها :

Imports System.Data.OleDb

Public Class Form1

Public Sub Movee()

LaMove.Text = Me.BindingContext(Ds.Tables(0)).Position + 1 & " From " & Me.BindingContext(Ds.Tables(0)).Count

End Sub



Dim Conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Data.mdb;Persist Security Info=False")

Dim SQl As String = "Select * From Info"

Dim Ds As New DataSet

Dim Da As New OleDbDataAdapter(SQl, Conn)

' Dim Cmd As New OleDbCommand



Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Da.Fill(Ds)

DG.DataSource = Ds.Tables(0)

Me.TextBox1.DataBindings.Add("Text", Ds.Tables(0), "id")

Me.TextBox2.DataBindings.Add("Text", Ds.Tables(0), "Name")

Me.TextBox3.DataBindings.Add("Text", Ds.Tables(0), "Address")

Me.TextBox4.DataBindings.Add("Text", Ds.Tables(0), "Lev")

Me.TextBox5.DataBindings.Add("Text", Ds.Tables(0), "Notes")

Movee()

End Sub



Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click

Me.BindingContext(Ds.Tables(0)).Position = 0

Movee()

End Sub



Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click

Me.BindingContext(Ds.Tables(0)).Position = Me.BindingContext(Ds.Tables(0)).Position - 1

Movee()

End Sub



Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click

Me.BindingContext(Ds.Tables(0)).Position = Me.BindingContext(Ds.Tables(0)).Position + 1

Movee()

End Sub



Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click

Me.BindingContext(Ds.Tables(0)).Position = Me.BindingContext(Ds.Tables(0)).Count - 1

Movee()

End Sub



Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Me.BindingContext(Ds.Tables(0)).EndCurrentEdit()

Me.BindingContext(Ds.Tables(0)).AddNew()

Movee()

End Sub



Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

Try

Me.BindingContext(Ds.Tables(0)).EndCurrentEdit()

Da.Update(Ds.Tables(0))

Movee()

Catch ex As Exception

MsgBox(ex.Message)

End Try

End Sub



Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Me.BindingContext(Ds.Tables(0)).EndCurrentEdit()

Me.Ds.RejectChanges()

Movee()

End Sub



Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

Me.BindingContext(Ds.Tables(0)).CancelCurrentEdit()

Movee()

End Sub



Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click

Me.BindingContext(Ds.Tables(0)).EndCurrentEdit()

Me.BindingContext(Ds.Tables(0)).RemoveAt(Me.BindingContext(Ds.Tables(0)).Positio
n)

Movee()

End Sub

End Class

الذى نود الإنتقال إليه :

هو 7 أسطر بالضبط تخرج نفس النتيجه

أظن أن فكرتى وضحت والذى حمل المكتبه التى فى االمشاركه الاولى بها مثال عملى على هذا الكلام وإن شاء الله نبدأ الدخول فى عمل الكلاس الذى الذى سوف يسهل عينا مثل هذه الاكواد الطويله

وهذا الكلاس سوف يتعامل مع Access و Oracle وقريبا XML نعم سوف نستخدمها كقاعد لبياناتنا وطور انت فى ذلك الكلاس لتجعله كيفما شئت .

ومستنى اى تعليق على هذا الكلام

أو الفكره عموماوعليكم السلام ورحمة الله وبركاته

[/وسط]

#6

مشكور يا أخ على هذه المشاركة .. مشاركة قيمة جدا ..

#7

اخي العزيز في البدايه احب ان تستمر في مابدات ولا تنتظر في من احد اي كلمة ثناء او شكر

يعني انت انشر العلم للافائده ولابد من يوم يجي واحد يدرك ما كتبت ويفهمه ويقدر ما صنعت

المهم اخي العزيز انا فعلاً مدرك ما تود انت تفهم به الاعضاء ولو الكل مننا يفكر كيف نختصر الكم الهائل من الاكواد

راح نتوصل الى طرق جديده ومبتكره المهم اخي انا عندي عقده من الفيجوال بيسك ههه ممكن احد يضحك علي

لكن انا من عشاق السي شارب وانا سوف اشارك معاكم في الافكار واحاول اقدم المساعده في ما اقدر عليه

واستمر اخي العزيز وحاول تضع لنا خطه نشمي عليها

تحياتي

اخوك فايز

#8

السلام عليكم ورحمة الله وبركاته

إليك الكلاس كامل لعلك لا تحتاج إلى شرحة بقدر ما تحتاج إلى فكرته :

الكلاس كاملا C#.Net

using System;

using System.Collections.Generic;

using System.Text;

using System.Data;

using System.Data.OleDb;

using System.Windows.Forms;





public class Access

{

public class Remote_Multi_Tables

{

private OleDbConnection Conn;

private Form frm;

//هذا الكنستركشر يحول ملف الاكسس إلى ملف دى إل إل

public Remote_Multi_Tables(Form ThisForm, string PathDataBase, string PassWord)

{

frm = ThisForm;

PathDataBase = PathDataBase.ToLower();

System.IO.FileInfo Fi = new System.IO.FileInfo(PathDataBase);

try

{

string R = Fi.Name;

R = R.Remove(Fi.Name.Length - Fi.Extension.Length);

Fi.MoveTo(R + ".dll");

PathDataBase = Fi.FullName;

}

catch

{

string R = Fi.Name;

R = R.Remove(Fi.Name.Length - Fi.Extension.Length);

string d = Fi.FullName.Trim(Fi.Name.ToCharArray());

PathDataBase = (R + ".dll");

}

string S = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + PathDataBase + ";User ID =Admin;Jet OLEDB:DATABASE PassWord=" + PassWord;

OleDbConnection ConnDB = new OleDbConnection(S);

Conn = new OleDbConnection(S);

}

//هذا الكنستركشر أيضاً يحول ملف الاكسس إلى ملف دى إل إل 

public Remote_Multi_Tables(Form ThisForm, string PathDataBase)

{

frm = ThisForm;

PathDataBase = PathDataBase.ToLower();

System.IO.FileInfo Fi = new System.IO.FileInfo(PathDataBase);

try

{

string R = Fi.Name;

R = R.Remove(Fi.Name.Length - Fi.Extension.Length);

Fi.MoveTo(R + ".dll");

PathDataBase = Fi.FullName;

}

catch

{

string R = Fi.Name;

R = R.Remove(Fi.Name.Length - Fi.Extension.Length);

string d = Fi.FullName.Trim(Fi.Name.ToCharArray());

PathDataBase = (R + ".dll");

}

string S = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + PathDataBase + ";Persist Security Info=False";

OleDbConnection connDB = new OleDbConnection(S);

Conn = new OleDbConnection(S);

}

OleDbDataAdapter da;

OleDbCommand cmd;

DataSet ds = new DataSet();

string sql;



public Boolean TestFoundData(string TableName)

{

sql = "Select * From " + TableName;

da = new OleDbDataAdapter(sql, Conn);

ds.Clear();

da.Fill(ds, TableName);

if (ds.Tables[TableName].Rows.Count == 0)

{

return false;

}

else

{

return true;

}

}



private void group(string TableNamee, string SQLL)

{

try

{

ds.Clear();

da = new OleDbDataAdapter(SQLL, Conn);

da.Fill(ds, TableNamee);

}

catch (OleDbException ex)

{

MessageBox.Show(ex.Message);

}

}



public void FillDataIn(DataGridView Grid, string TableName, string SQL)

{

try

{

group(TableName, SQL);

Grid.DataSource = ds.Tables[TableName];

}

catch (OleDbException ex)

{

MessageBox.Show(ex.Message);

}

}



public void FillDataIn(ListBox DataList, string TableName, string ColumnName, string SQL)

{

try

{

DataList.Items.Clear();

group(TableName, SQL);

for (int i = 0; i < ds.Tables[TableName].Rows.Count; i++)

{

DataList.Items.Add(ds.Tables[TableName].Rows[ColumnName]);

}

}

catch (OleDbException ex)

{

MessageBox.Show(ex.Message);

}

}



public void FillDataIn(ComboBox DataCombo, string TableName, string ColumnName, string SQL)

{

try

{

DataCombo.Items.Clear();

group(TableName, SQL);

for (int i = 0; i < ds.Tables[TableName].Rows.Count; i++)

{

if (i == 0)

{

DataCombo.Text = ds.Tables[TableName].Rows[ColumnName].ToString();

DataCombo.Items.Add(ds.Tables[TableName].Rows[ColumnName]);

}

else

{

DataCombo.Items.Add(ds.Tables[TableName].Rows[ColumnName]);

}

}

}

catch (OleDbException ex)

{

MessageBox.Show(ex.Message);

}

}



public void FillDataIn(TextBox[] BoxsData, string TableName, string SQL)

{

try

{

group(TableName, SQL);

for (int i = 0; i < ds.Tables[TableName].Columns.Count; i++)

{

BoxsData.DataBindings.Add("Text", ds.Tables[TableName], ds.Tables[TableName].Columns.ColumnName);

}

}

catch

{

}

}



public void FillDataIn(TextBox[] BoxsData, string TableName, string[] ColumnsName, string SQL)

{

try

{

group(TableName, SQL);

for (int i = 0; i < ds.Tables[TableName].Columns.Count; i++)

{

BoxsData.DataBindings.Add("Text", ds.Tables[TableName], ds.Tables[TableName].Columns[ColumnsName].ColumnName);

}

}

catch

{

}

}



public void FillDataIn(DataGridView Grid, string TableName, string SQL, TextBox[] BoxsData, string[] ColumnsName, ComboBox ComboData, string NameColumn)

{

try

{

group(TableName, SQL);

Grid.DataSource = ds.Tables[TableName];

for (int i = 0; i < BoxsData.Length; i++)

{

BoxsData.DataBindings.Add("Text", ds.Tables[TableName], ds.Tables[TableName].Columns[ColumnsName].ColumnName);

}

ComboData.Items.Clear();

for (int i = 0; i < ds.Tables[TableName].Rows.Count; i++)

{

if (i == 0)

{

ComboData.Text = ds.Tables[TableName].Rows[NameColumn].ToString();

ComboData.Items.Add(ds.Tables[TableName].Rows[NameColumn]);

}

else

{

ComboData.Items.Add(ds.Tables[TableName].Rows[NameColumn]);

}

}

}

catch

{

}

}



public void FillDataIn(DataGridView Grid, string TableName, string SQL, TextBox[] BoxsData)

{

try

{

try

{

group(TableName, SQL);

Grid.DataSource = ds.Tables[TableName];

for (int i = 0; i < ds.Tables[TableName].Columns.Count; i++)

{

BoxsData.DataBindings.Add("Text", ds.Tables[TableName], ds.Tables[TableName].Columns.ColumnName);

}

}

catch (OleDbException ex)

{

MessageBox.Show(ex.Message);

}

}

catch

{

}

}



public void GoFrist(string TableName)

{

frm.BindingContext[ds.Tables[TableName]].Position = 0;

}

public void GoEnd(string TableName)

{

frm.BindingContext[ds.Tables[TableName]].Position = frm.BindingContext[ds.Tables[TableName]].Count;

}

public void MoveNext(string TableName)

{

frm.BindingContext[ds.Tables[TableName]].Position++;

}

public void MoveBack(string TableName)

{

frm.BindingContext[ds.Tables[TableName]].Position--;

}



public void SitePosition(string TableName, Control Clt, string Word)

{

Clt.Text = (frm.BindingContext[ds.Tables[TableName]].Position + 1) + " " + Word + " " + (frm.BindingContext[ds.Tables[TableName]].Count);

}



private string ev = "0";

private string TableWillNew;

public void AddNew(string TableName)

{

ev = "new";

TableWillNew = TableName;

frm.BindingContext[ds.Tables[TableName]].EndCurrentEdit();

frm.BindingContext[ds.Tables[TableName]].AddNew();

}



public void CancelNew(string TableName)

{

frm.BindingContext[ds.Tables[TableName]].CancelCurrentEdit();

}



private string ColumnWillEditBY;

private string nameCo;

public void Edit(string EditByColumn, string ValColumnEditByit)

{

ev = "edit";

ColumnWillEditBY = ValColumnEditByit;

nameCo = EditByColumn;

}

private void groupDelete(string TableName, string SQL)

{

try

{

if (Conn.State != ConnectionState.Open) { Conn.Open(); }

cmd = new OleDbCommand(SQL, Conn);

cmd.ExecuteNonQuery();

group(TableName, "Select * from " + TableName);

if (Conn.State != ConnectionState.Closed) { Conn.Close(); }

}

catch

{

}

}

public void Delete(string TableName, string ByColumn, string ValColumn)

{

try

{

sql = "Delete * From " + TableName + " Where " + ByColumn + " = ";

if (ds.Tables[TableName].Columns[ByColumn].DataType.ToString() == "System.String")

{

sql += "'" + ValColumn + "'";

}

else if (ds.Tables[TableName].Columns[ByColumn].DataType.ToString() == "System.DateTime")

{

sql += "#" + ValColumn + "#";

}

else

{

sql += ValColumn;

}

groupDelete(TableName, sql);

}

catch

{

}



}

public void Delete(string TableName, string SQL)

{

groupDelete(TableName, SQL);

}



private void GAE(string TableName, string SQL)

{

if (Conn.State != ConnectionState.Open) { Conn.Open(); }

cmd = new OleDbCommand(sql, Conn);

cmd.ExecuteNonQuery();

if (Conn.State != ConnectionState.Closed) { Conn.Close(); }

sql = "Select * from " + TableName;

group(TableName, sql);

ev = "0";

}



public void Save(Control[] BoxsData)

{

if (ev == "new")

{

try

{

sql = "Insert Into " + TableWillNew + "(";

for (int i = 0; i < BoxsData.Length; i++)

{

sql += ds.Tables[TableWillNew].Columns.ColumnName + ",";

}

sql = sql.Remove(sql.Length - 1);

sql += ") Values (";

for (int i = 0; i < BoxsData.Length; i++)

{

if (ds.Tables[TableWillNew].Columns.DataType.ToString() == "System.String")

{

sql += "'" + BoxsData.Text + "',";

}

else if (ds.Tables[TableWillNew].Columns.DataType.ToString() == "System.DateTime")

{

sql += "#" + BoxsData.Text + "#,";

}

else

{

sql += BoxsData.Text + ",";

}

}

sql = sql.Remove(sql.Length - 1);

sql += ")";

GAE(TableWillNew, sql);

ev = "0";

}

catch (OleDbException ex)

{

ev = "0";

MessageBox.Show(ex.Message);

}

}

else if (ev == "edit")

{

try

{

sql = "Update " + TableWillNew + " Set ";

for (int i = 0; i < BoxsData.Length; i++)

{

if (ds.Tables[TableWillNew].Columns.DataType.ToString() == "System.String")

{

sql += ds.Tables[TableWillNew].Columns.ColumnName + " = '" + BoxsData.Text + "',";

}

else if (ds.Tables[TableWillNew].Columns.DataType.ToString() == "System.DateTime")

{

sql += ds.Tables[TableWillNew].Columns.ColumnName + " = #" + BoxsData.Text + "#,";

}

else

{

sql += ds.Tables[TableWillNew].Columns.ColumnName + " = " + BoxsData.Text + ",";

}

}

sql = sql.Remove(sql.Length - 1);

for (int i = 0; i < BoxsData.Length - 1; i++)

{

if (ds.Tables[TableWillNew].Columns.DataType.ToString() == "System.String")

{

sql += " Where " + nameCo + " = '" + ColumnWillEditBY + "'";

}

else if (ds.Tables[TableWillNew].Columns.DataType.ToString() == "System.DateTime")

{

sql += " Where " + nameCo + " = #" + ColumnWillEditBY + "#";

}

else

{

sql += " Where " + nameCo + " = " + ColumnWillEditBY;

}

}

GAE(TableWillNew, sql);

ev = "0";

}

catch (OleDbException ex)

{

ev = "0";

MessageBox.Show(ex.Message);

}

}

}





public void Search(string TableName, string ByColumn, string ValColumn)

{

sql = "Select * From " + TableName + " Where " + ByColumn;

if (ds.Tables[TableName].Columns[ByColumn].DataType.ToString() == "System.DateTime")

{

sql += "=" + "#" + ValColumn + "#";

}

else

{

sql += " Like '" + ValColumn + "%'";

}

ds.Clear();

da = new OleDbDataAdapter(sql, Conn);

da.Fill(ds, TableName);

}



public void Search(string TableName, string[] ColumnsShown, string ByColumn, string ValColumn)

{

sql = "Select ";

for (int i = 0; i < ColumnsShown.Length; i++)

{

sql += ColumnsShown + ",";

}

sql = sql.Remove(sql.Length - 1);

sql += " From " + TableName + " Where " + ByColumn;

if (ds.Tables[TableName].Columns[ByColumn].DataType.ToString() == "System.DateTime")

{

sql += "=" + "#" + ValColumn + "#";

}

else

{

sql += " Like '" + ValColumn + "%'";

}

ds.Clear();

da = new OleDbDataAdapter(sql, Conn);

da.Fill(ds, TableName);

}



public void Reports(string TableName, string SQL)

{

group(TableName, SQL);

}



public void Reports(string TableName, string SQL, CrystalDecisions.Windows.Forms.CrystalReportViewer Clt, string PathReportDesiner)

{ 

try

{

group(TableName, SQL);

DataBaseOsama.CrystalReport1 C = new DataBaseOsama.CrystalReport1();

C.SetDataSource(ds.Tables[TableName]);

Clt.ReportSource = PathReportDesiner;

}

catch (OleDbException ex)

{

MessageBox.Show(ex.Message);

}

}



public Int32 MaxVal(string TableName, string ColumnName)

{

sql = "Select Max(" + ColumnName + ") From " + TableName;

if (Conn.State != ConnectionState.Open) { Conn.Open(); }

cmd = new OleDbCommand(sql, Conn);

return Convert.ToInt32(cmd.ExecuteScalar());

}



public Int32 MinVal(string TableName, string ColumnName)

{

sql = "Select Min(" + ColumnName + ") From " + TableName;

if (Conn.State != ConnectionState.Open) { Conn.Open(); }

cmd = new OleDbCommand(sql, Conn);

return Convert.ToInt32(cmd.ExecuteScalar());

}



public int CountColumn(string TableName)

{

return ds.Tables[TableName].Columns.Count;

}



public int CountRows(string TableName)

{

return ds.Tables[TableName].Rows.Count;

}



public int SumColumn(string TableName, string ColumnName)

{

sql = "Select Sum (" + ColumnName + ") From " + TableName;

if (Conn.State != ConnectionState.Open) { Conn.Open(); }

cmd = new OleDbCommand(sql, Conn);

return Convert.ToInt16(cmd.ExecuteScalar());

}

public void WriteXML(string Path)

{

ds.WriteXml(Path);

}

public void WriteXMLSchema(string Path)

{

ds.WriteXmlSchema(Path);

}

}

public class Remote_One_Table

{

private OleDbConnection Conn;

private Form frm;

private string Table;

//هذا الكنستركشر يحول ملف الاكسس إلى ملف دى إل إل

public Remote_One_Table(Form ThisForm, string PathDataBase, string PassWord, string TableName)

{

frm = ThisForm;

Table = TableName;

PathDataBase = PathDataBase.ToLower();

System.IO.FileInfo Fi = new System.IO.FileInfo(PathDataBase);

try

{

string R = Fi.Name;

R = R.Remove(Fi.Name.Length - Fi.Extension.Length);

Fi.MoveTo(R + ".dll");

PathDataBase = Fi.FullName;

}

catch

{

string R = Fi.Name;

R = R.Remove(Fi.Name.Length - Fi.Extension.Length);

string d = Fi.FullName.Trim(Fi.Name.ToCharArray());

PathDataBase = (R + ".dll");

}

string S = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + PathDataBase + ";User ID =Admin;Jet OLEDB:DATABASE PassWord=" + PassWord;

OleDbConnection ConnDB = new OleDbConnection(S);

Conn = new OleDbConnection(S);

}

//هذا الكنستركشر أيضاً يحول ملف الاكسس إلى ملف دى إل إل 

public Remote_One_Table(Form ThisForm, string PathDataBase, string TableName)

{

frm = ThisForm;

Table = TableName;

PathDataBase = PathDataBase.ToLower();

System.IO.FileInfo Fi = new System.IO.FileInfo(PathDataBase);

try

{

string R = Fi.Name;

R = R.Remove(Fi.Name.Length - Fi.Extension.Length);

Fi.MoveTo(R + ".dll");

PathDataBase = Fi.FullName;

}

catch

{

string R = Fi.Name;

R = R.Remove(Fi.Name.Length - Fi.Extension.Length);

string d = Fi.FullName.Trim(Fi.Name.ToCharArray());

PathDataBase = (R + ".dll");

}

string S = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + PathDataBase + ";Persist Security Info=False";

OleDbConnection connDB = new OleDbConnection(S);

Conn = new OleDbConnection(S);

}

OleDbDataAdapter da;

OleDbCommand cmd;

DataTable dt = new DataTable();

string sql;



public Boolean TestFoundData()

{

sql = "Select * From " + Table;

da = new OleDbDataAdapter(sql, Conn);

dt.Clear();

da.Fill(dt);

if (dt.Rows.Count == 0)

{

return false;

}

else

{

return true;

}

}



private void group(string SQLL)

{

try

{

dt.Clear();

da = new OleDbDataAdapter(SQLL, Conn);

da.Fill(dt);

}

catch (OleDbException ex)

{

MessageBox.Show(ex.Message);

}

}



public void FillDataIn(DataGridView Grid, string SQL)

{

try

{

group(SQL);

Grid.DataSource = dt;

}

catch (OleDbException ex)

{

MessageBox.Show(ex.Message);

}

}



public void FillDataIn(ListBox DataList, string ColumnName, string SQL)

{

try

{

DataList.Items.Clear();

group(SQL);

for (int i = 0; i < dt.Rows.Count; i++)

{

DataList.Items.Add(dt.Rows[ColumnName]);

}

}

catch (OleDbException ex)

{

MessageBox.Show(ex.Message);

}

}



public void FillDataIn(ComboBox DataCombo, string ColumnName, string SQL)

{

try

{

DataCombo.Items.Clear();

group(SQL);

for (int i = 0; i < dt.Rows.Count; i++)

{

if (i == 0)

{

DataCombo.Text = dt.Rows[ColumnName].ToString();

DataCombo.Items.Add(dt.Rows[ColumnName]);

}

else

{

DataCombo.Items.Add(dt.Rows[ColumnName]);

}

}

}

catch (OleDbException ex)

{

MessageBox.Show(ex.Message);

}

}



public void FillDataIn(TextBox[] BoxsData, string SQL)

{

try

{

group(SQL);

for (int i = 0; i < dt.Columns.Count; i++)

{

BoxsData.DataBindings.Add("Text", dt, dt.Columns.ColumnName);

}

}

catch

{

}

}



public void FillDataIn(TextBox[] BoxsData, string[] ColumnsName, string SQL)

{

try

{

group(SQL);

for (int i = 0; i < dt.Columns.Count; i++)

{

BoxsData.DataBindings.Add("Text", dt, dt.Columns[ColumnsName].ColumnName);

}

}

catch

{

}

}



public void FillDataIn(DataGridView Grid, string SQL, TextBox[] BoxsData, string[] ColumnsName, ComboBox ComboData, string NameColumn)

{

try

{

group(SQL);

Grid.DataSource = dt;

for (int i = 0; i < BoxsData.Length; i++)

{

BoxsData.DataBindings.Add("Text", dt, dt.Columns[ColumnsName].ColumnName);

}

ComboData.Items.Clear();

for (int i = 0; i < dt.Rows.Count; i++)

{

if (i == 0)

{

ComboData.Text = dt.Rows[NameColumn].ToString();

ComboData.Items.Add(dt.Rows[NameColumn]);

}

else

{

ComboData.Items.Add(dt.Rows[NameColumn]);

}

}

}

catch

{

}

}



public void FillDataIn(DataGridView Grid, string SQL, TextBox[] BoxsData)

{

try

{

try

{

group(SQL);

Grid.DataSource = dt;

for (int i = 0; i < dt.Columns.Count; i++)

{

BoxsData.DataBindings.Add("Text", dt, dt.Columns.ColumnName);

}

}

catch (OleDbException ex)

{

MessageBox.Show(ex.Message);

}

}

catch

{

}

}



public void GoFrist()

{

frm.BindingContext[dt].Position = 0;

}

public void GoEnd()

{

frm.BindingContext[dt].Position = frm.BindingContext[dt].Count;

}

public void MoveNext()

{

frm.BindingContext[dt].Position++;

}

public void MoveBack()

{

frm.BindingContext[dt].Position--;

}



public void SitePosition(Control Clt, string Word)

{

Clt.Text = (frm.BindingContext[dt].Position + 1) + " " + Word + " " + (frm.BindingContext[dt].Count);

}



private string ev = "0";

public void AddNew()

{

ev = "new";

frm.BindingContext[dt].EndCurrentEdit();

frm.BindingContext[dt].AddNew();

}



public void CancelNew()

{

frm.BindingContext[dt].CancelCurrentEdit();

}



private string ColumnWillEditBY;

private string nameCo;

public void Edit(string EditByColumn, string ValColumnEditByit)

{

ev = "edit";

ColumnWillEditBY = ValColumnEditByit;

nameCo = EditByColumn;

}

private void groupDelete(string SQL)

{

try

{

if (Conn.State != ConnectionState.Open) { Conn.Open(); }

cmd = new OleDbCommand(SQL, Conn);

cmd.ExecuteNonQuery();

group("Select * from " + Table);

if (Conn.State != ConnectionState.Closed) { Conn.Close(); }

}

catch

{

}

}

public void Delete(string ByColumn, string ValColumn)

{

try

{

sql = "Delete * From " + Table + " Where " + ByColumn + " = ";

if (dt.Columns[ByColumn].DataType.ToString() == "System.String")

{

sql += "'" + ValColumn + "'";

}

else if (dt.Columns[ByColumn].DataType.ToString() == "System.DateTime")

{

sql += "#" + ValColumn + "#";

}

else

{

sql += ValColumn;

}

groupDelete(sql);

}

catch

{

}



}

public void Delete(string SQL)

{

groupDelete(SQL);

}



private void GAE(string SQL)

{

if (Conn.State != ConnectionState.Open) { Conn.Open(); }

cmd = new OleDbCommand(sql, Conn);

cmd.ExecuteNonQuery();

if (Conn.State != ConnectionState.Closed) { Conn.Close(); }

sql = "Select * from " + Table;

group(sql);

ev = "0";

}



public void Save(Control[] BoxsData)

{

if (ev == "new")

{

try

{

sql = "Insert Into " + Table + "(";

for (int i = 0; i < BoxsData.Length; i++)

{

sql += dt.Columns.ColumnName + ",";

}

sql = sql.Remove(sql.Length - 1);

sql += ") Values (";

for (int i = 0; i < BoxsData.Length; i++)

{

if (dt.Columns.DataType.ToString() == "System.String")

{

sql += "'" + BoxsData.Text + "',";

}

else if (dt.Columns.DataType.ToString() == "System.DateTime")

{

sql += "#" + BoxsData.Text + "#,";

}

else

{

sql += BoxsData.Text + ",";

}

}

sql = sql.Remove(sql.Length - 1);

sql += ")";

GAE(sql);

ev = "0";

}

catch (OleDbException ex)

{

ev = "0";

MessageBox.Show(ex.Message);

}

}

else if (ev == "edit")

{

try

{

sql = "Update " + Table + " Set ";

for (int i = 0; i < BoxsData.Length; i++)

{

if (dt.Columns.DataType.ToString() == "System.String")

{

sql += dt.Columns.ColumnName + " = '" + BoxsData.Text + "',";

}

else if (dt.Columns.DataType.ToString() == "System.DateTime")

{

sql += dt.Columns.ColumnName + " = #" + BoxsData.Text + "#,";

}

else

{

sql += dt.Columns.ColumnName + " = " + BoxsData.Text + ",";

}

}

sql = sql.Remove(sql.Length - 1);

for (int i = 0; i < BoxsData.Length - 1; i++)

{

if (dt.Columns.DataType.ToString() == "System.String")

{

sql += " Where " + nameCo + " = '" + ColumnWillEditBY + "'";

}

else if (dt.Columns.DataType.ToString() == "System.DateTime")

{

sql += " Where " + nameCo + " = #" + ColumnWillEditBY + "#";

}

else

{

sql += " Where " + nameCo + " = " + ColumnWillEditBY;

}

}

GAE(sql);

ev = "0";

}

catch (OleDbException ex)

{

ev = "0";

MessageBox.Show(ex.Message);

}

}

}





public void Search(string ByColumn, string ValColumn)

{

sql = "Select * From " + Table + " Where " + ByColumn;

if (dt.Columns[ByColumn].DataType.ToString() == "System.DateTime")

{

sql += "=" + "#" + ValColumn + "#";

}

else

{

sql += " Like '" + ValColumn + "%'";

}

dt.Clear();

da = new OleDbDataAdapter(sql, Conn);

da.Fill(dt);

}



public void Search(string[] ColumnsShown, string ByColumn, string ValColumn)

{

sql = "Select ";

for (int i = 0; i < ColumnsShown.Length; i++)

{

sql += ColumnsShown + ",";

}

sql = sql.Remove(sql.Length - 1);

sql += " From " + Table + " Where " + ByColumn;

if (dt.Columns[ByColumn].DataType.ToString() == "System.DateTime")

{

sql += "=" + "#" + ValColumn + "#";

}

else

{

sql += " Like '" + ValColumn + "%'";

}

dt.Clear();

da = new OleDbDataAdapter(sql, Conn);

da.Fill(dt);

}



public void Reports(string SQL)

{

group(SQL);

}

public void Reports(string SQL, CrystalDecisions.Windows.Forms.CrystalReportViewer Clt, string PathReportDesiner)

{

try

{

group(SQL);

DataBaseOsama.CrystalReport1 C = new DataBaseOsama.CrystalReport1();

C.SetDataSource(dt);

Clt.ReportSource = PathReportDesiner;

}

catch (OleDbException ex)

{

MessageBox.Show(ex.Message);

}

}



public Int32 MaxVal(string ColumnName)

{

sql = "Select Max(" + ColumnName + ") From " + Table;

if (Conn.State != ConnectionState.Open) { Conn.Open(); }

cmd = new OleDbCommand(sql, Conn);

return Convert.ToInt32(cmd.ExecuteScalar());

}



public Int32 MinVal(string ColumnName)

{

sql = "Select Min(" + ColumnName + ") From " + Table;

if (Conn.State != ConnectionState.Open) { Conn.Open(); }

cmd = new OleDbCommand(sql, Conn);

return Convert.ToInt32(cmd.ExecuteScalar());

}



public int CountColumn()

{

return dt.Columns.Count;

}



public int CountRows()

{

return dt.Rows.Count;

}



public int SumColumn(string ColumnName)

{

sql = "Select Sum (" + ColumnName + ") From " + Table;

if (Conn.State != ConnectionState.Open) { Conn.Open(); }

cmd = new OleDbCommand(sql, Conn);

return Convert.ToInt16(cmd.ExecuteScalar());

}

public void WriteXML(string Path)

{

dt.WriteXml(Path);

}

public void WriteXMLSchema(string Path)

{

dt.WriteXmlSchema(Path);

}

}

}

الكلاس كاملا VB.Net

Imports System.Data.OleDb

Public Class OleDB

Dim Conn As OleDbConnection



Public Step_1_DataBasePath As String

Public Step_2_DataBasePassWord As String

Public Step_3_TableName As String = ""

Public Step_4_SQL_Query As String = ""

Public Step_5_YourForm As Form



Dim Da As OleDbDataAdapter

Dim DS As New DataSet

Dim Cmd As OleDbCommand

Dim SQL As String

Dim NumPriEd As String

Dim NewOREdit As String = "0"





Private Sub Group()

Try

Conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Step_1_DataBasePath & ";User ID =Admin;Jet OLEDB:DATABASE PassWord=" + Step_2_DataBasePassWord)

Catch ex As OleDbException

MsgBox(ex.Message, , "PassWord")

End Try

Da = New OleDbDataAdapter(Step_4_SQL_Query, Conn)

DS.Clear()

Da.Fill(DS, Step_3_TableName)

End Sub



Public Sub TestFoundData(Optional ByVal TextMsgbox As String = "لا توجد بيانات", Optional ByVal TitleMsgbox As String = "الجدول خالى من البيانات")

On Error Resume Next

Group()

If DS.Tables(Step_3_TableName).Rows.Count = 0 Then

MsgBox(TextMsgbox, MsgBoxStyle.Critical, TitleMsgbox)

End If

End Sub

Dim DS1 As New DataSet

Public Sub FillDataColumnInList(ByVal List As ListBox, ByVal ColumnName As String)

On Error Resume Next

Conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Step_1_DataBasePath & ";User ID =Admin;Jet OLEDB:DATABASE PassWord=" + Step_2_DataBasePassWord)

SQL = "Select " + ColumnName + " From " + Step_3_TableName

Da = New OleDbDataAdapter(SQL, Conn)

DS1.Clear()

Da.Fill(DS1, Step_3_TableName)

List.Items.Clear()

For I As Integer = 0 To DS1.Tables(Step_3_TableName).Rows.Count - 1

List.Items.Add(DS1.Tables(Step_3_TableName).Rows(I)(ColumnName))

Next

End Sub



Public Sub FillDataColumnInList(ByVal CompoBoxList As ComboBox, ByVal CompoBoxText As String, ByVal ColumnName As String)

On Error Resume Next

Conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Step_1_DataBasePath & ";User ID =Admin;Jet OLEDB:DATABASE PassWord=" + Step_2_DataBasePassWord)

SQL = "Select " + ColumnName + " From " + Step_3_TableName

Da = New OleDbDataAdapter(SQL, Conn)

DS1.Clear()

Da.Fill(DS1, Step_3_TableName)

CompoBoxList.Items.Clear()

CompoBoxList.Text = CompoBoxText

For I As Integer = 0 To DS1.Tables(Step_3_TableName).Rows.Count - 1

CompoBoxList.Items.Add(DS1.Tables(Step_3_TableName).Rows(I)(ColumnName))

Next

End Sub



Public Sub FillDataInGridView(ByVal Grid As System.Windows.Forms.DataGridView)

On Error Resume Next

Group()

Grid.DataSource = DS.Tables(Step_3_TableName)

End Sub



Public Sub FillDataInAnyBox(ByVal ColumnsName() As String, ByVal BoxName() As Control, Optional ByVal BoxProperty As String = "Text")

On Error Resume Next

Dim I As Integer = BoxName.Length - 1

For I = 0 To I

BoxName(I).DataBindings.Add(BoxProperty, DS.Tables(Step_3_TableName), ColumnsName(I))

Next

End Sub



Public Sub AddNewRow()

On Error Resume Next

If NewOREdit = "New" Or NewOREdit = "Edit" Then Exit Sub

NewOREdit = "New"

Step_5_YourForm.BindingContext(DS.Tables(Step_3_TableName)).EndCurrentEdit()

Step_5_YourForm.BindingContext(DS.Tables(Step_3_TableName)).AddNew()

End Sub



Public Sub Save(ByVal ColumnsName() As String, ByVal Data() As String, ByVal NameColumnPrimaryKey As String)

Try



If NewOREdit = "New" Then

SQL = "Insert Into " + Step_3_TableName + " ("

For I As Integer = 0 To ColumnsName.Length - 1

SQL += "[" + ColumnsName(I) + "],"

Next

SQL = SQL.TrimEnd(",")

SQL += ") VALUES ("

For I As Integer = 0 To Data.Length - 1

If (DS.Tables(Step_3_TableName).Columns(ColumnsName(I)).DataType).ToString = "System.String" Then

If Data(I) <> "" Then

SQL += "'" + Data(I) + "'" + ","

Else

Data(I) = ""

SQL += "'" + Data(I) + "'" + ","

End If

ElseIf (DS.Tables(Step_3_TableName).Columns(ColumnsName(I)).DataType).ToString = "System.DateTime" Then

If Data(I) <> "" Then

SQL += "#" + Convert.ToDateTime(Data(I)).Date + "#" + ","

Else

Data(I) = "Null"

SQL += Data(I) + ","

End If

Else

If Data(I) <> "" Then

SQL += Data(I) + ","

Else

Data(I) = "Null"

SQL += Data(I) + ","

End If

End If

Next

SQL = SQL.TrimEnd(",")

SQL += ")"

'MsgBox(SQL)

If Conn.State = ConnectionState.Closed Then Conn.Open()

Cmd = New OleDbCommand(SQL, Conn)

Cmd.ExecuteNonQuery()

If Conn.State = ConnectionState.Open Then Conn.Close()

Da = New OleDbDataAdapter(Step_4_SQL_Query, Conn)

DS.Clear()

Da.Fill(DS, Step_3_TableName)



ElseIf NewOREdit = "Edit" Then



SQL = "Update " + Step_3_TableName + " Set "

Dim I As Integer = ColumnsName.Length - 1

For I = 0 To I

If (DS.Tables(Step_3_TableName).Columns(ColumnsName(I)).DataType).ToString = "System.String" Then

If Data(I) <> "" Then

SQL += ColumnsName(I) + " = '" + Data(I) + "',"

Else

Data(I) = ""

SQL += ColumnsName(I) + " = '" + Data(I) + "',"

End If

ElseIf (DS.Tables(Step_3_TableName).Columns(ColumnsName(I)).DataType).ToString = "System.DateTime" Then

If Data(I) <> "" Then

SQL += ColumnsName(I) + " = #" + Convert.ToDateTime(Data(I)).Date + "#,"

Else

Data(I) = "Null"

SQL += ColumnsName(I) + " = " + Data(I) + ","

End If

Else

If Data(I) <> "" Then

SQL += ColumnsName(I) + " = " + Data(I) + ","

Else

Data(I) = "Null"

SQL += ColumnsName(I) + " = " + Data(I) + ","

End If

End If

Next

SQL = SQL.TrimEnd(",")

SQL += " Where " + NameColumnPrimaryKey + " = " + NumPriEd

'MsgBox(SQL)

If Conn.State = ConnectionState.Closed Then Conn.Open()

Cmd = New OleDbCommand(SQL, Conn)

Cmd.ExecuteNonQuery()

If Conn.State = ConnectionState.Open Then Conn.Close()

Da = New OleDbDataAdapter("Select * From " + Step_3_TableName, Conn)

DS.Clear()

Da.Fill(DS, Step_3_TableName)

End If

NewOREdit = "0"

Catch ex As OleDbException

MsgBox(ex.Message, , "Error On Save")

End Try

End Sub



Public Sub DeleteRow(ByVal NameColumnIF As String, ByVal ValueColumnIFEqual As String)

Try

NewOREdit = "0"

SQL = "Delete * From " + Step_3_TableName + " Where " + NameColumnIF + " = "

If (DS.Tables(Step_3_TableName).Columns(NameColumnIF).DataType).ToString = "System.String" Then

SQL += "'" + ValueColumnIFEqual + "'"

ElseIf (DS.Tables(Step_3_TableName).Columns(NameColumnIF).DataType).ToString = "System.DateTime" Then

SQL += "#" + ValueColumnIFEqual + "#"

Else

SQL += ValueColumnIFEqual

End If

Cmd = New OleDbCommand(SQL, Conn)

'MsgBox(SQL)

If Conn.State = ConnectionState.Closed Then Conn.Open()

Cmd.ExecuteNonQuery()

If Conn.State = ConnectionState.Open Then Conn.Close()

Da = New OleDbDataAdapter(Step_4_SQL_Query, Conn)

DS.Clear()

Da.Fill(DS.Tables(Step_3_TableName))

Catch Ex As OleDbException

MsgBox(Ex.Message, , "Error On Delete")

End Try

End Sub



Public Sub DeleteRow(ByVal SQL_Where As String)

Try

NewOREdit = "0"

SQL = "Delete * From " + Step_3_TableName + " Where " + SQL_Where

Cmd = New OleDbCommand(SQL, Conn)

'MsgBox(SQL)

If Conn.State = ConnectionState.Closed Then Conn.Open()

Cmd.ExecuteNonQuery()

If Conn.State = ConnectionState.Open Then Conn.Close()

DS.Clear()

Da.Fill(DS.Tables(Step_3_TableName))

Catch Ex As OleDbException

MsgBox(Ex.Message, , "Error On Delete")

End Try

End Sub



Public Sub EditRow(ByVal ValuePrimaryKey As String)

NewOREdit = "Edit"

NumPriEd = ValuePrimaryKey

End Sub



Public Sub CancelAddNew()

On Error Resume Next

Step_5_YourForm.BindingContext(DS.Tables(Step_3_TableName)).CancelCurrentEdit()

End Sub



Public Sub Reports(ByVal SQL_Query As String)

On Error Resume Next

DS.Clear()

Da = New OleDbDataAdapter(SQL_Query, Conn)

Da.Fill(DS, Step_3_TableName)

End Sub



Public Sub SpeedSearch(ByVal ColumnsShow() As String, ByVal SearchByColumnName As String, ByVal ValColumnStar As String, ByVal Order_By As String)

On Error Resume Next

DS.Clear()

SQL = "Select "

Dim I As Integer = ColumnsShow.Length - 1

For I = 0 To I

SQL += " [" & ColumnsShow(I) & "],"

Next

SQL = SQL.TrimEnd(",")

If (DS.Tables(Step_3_TableName).Columns(SearchByColumnName).DataType.ToString) = "System.DateTime" Then

SQL += " From " & Step_3_TableName & " Where " & SearchByColumnName & " = #" & ValColumnStar & "# Order By " + Order_By

Else

SQL += " From " & Step_3_TableName & " Where " & SearchByColumnName & " Like '" & ValColumnStar & "%' Order By " + Order_By

End If

'MsgBox(SQl)

Da = New OleDbDataAdapter(SQL, Conn)

Da.Fill(DS, Step_3_TableName)

End Sub



Public Function CountRowTable() As Integer

Try

Dim M As Integer = DS.Tables(Step_3_TableName).Rows.Count

Return M

Catch Ex As OleDbException

MsgBox(Ex.Message, , "Error On CountRows")

End Try

End Function



Public Sub GoFrist()

On Error Resume Next

Step_5_YourForm.BindingContext(DS.Tables(Step_3_TableName)).Position = 0

End Sub

Public Sub MoveBack()

On Error Resume Next

Step_5_YourForm.BindingContext(DS.Tables(Step_3_TableName)).Position = Step_5_YourForm.BindingContext(DS.Tables(Step_3_TableName)).Position - 1

End Sub

Public Sub MoveNext()

On Error Resume Next

Step_5_YourForm.BindingContext(DS.Tables(Step_3_TableName)).Position = Step_5_YourForm.BindingContext(DS.Tables(Step_3_TableName)).Position + 1

End Sub

Public Sub GoEnd()

On Error Resume Next

Step_5_YourForm.BindingContext(DS.Tables(Step_3_TableName)).Position = Step_5_YourForm.BindingContext(DS.Tables(Step_3_TableName)).Count

End Sub

Public Sub ShowSiteRow(ByVal Clt As Control, Optional ByVal TextBetweenPositionAndCount As String = "From")

Clt.Text = Step_5_YourForm.BindingContext(DS.Tables(Step_3_TableName)).Position + 1 & " " & TextBetweenPositionAndCount & " " & Step_5_YourForm.BindingContext(DS.Tables(Step_3_TableName)).Count

End Sub



Public Function Total_Column(ByVal ColumnName As String, Optional ByVal MsgError As String = "الحقل غير صالح لجمع صفوفه") As Double

Try

If (DS.Tables(Step_3_TableName).Columns(ColumnName).DataType).ToString = "System.Byte" Or (DS.Tables(Step_3_TableName).Columns(ColumnName).DataType).ToString = "System.Int16" Or (DS.Tables(Step_3_TableName).Columns(ColumnName).DataType).ToString = "System.Int32" Or (DS.Tables(Step_3_TableName).Columns(ColumnName).DataType).ToString = "System.Single" Or (DS.Tables(Step_3_TableName).Columns(ColumnName).DataType).ToString = "System.Double" Or (DS.Tables(Step_3_TableName).Columns(ColumnName).DataType).ToString = "System.Decimal" Then

SQL = "Select Sum(" & ColumnName & ")" & " From " & Step_3_TableName

Else

MsgBox(MsgError, , "Error")

Exit Function

End If

If Conn.State = ConnectionState.Closed Then Conn.Open()

Cmd = New OleDbCommand(SQL, Conn)

Return Cmd.ExecuteScalar

If Conn.State = ConnectionState.Open Then Conn.Close()

Catch Ex As OleDbException

MsgBox(Ex.Message, , "Error On Total Columns")

End Try

End Function



Public Sub Sum_Columns(ByVal ColumnsShow() As String, ByVal ColumnsNameSum() As String, Optional ByVal NameNewColumns As String = "SumColumns")

Try

SQL = "Select "

For I As Integer = 0 To ColumnsShow.Length - 1

SQL += "[" + ColumnsShow(I) + "],"

Next

For I As Integer = 0 To ColumnsNameSum.Length - 1

SQL += "[" + ColumnsNameSum(I) + "]+"

Next

SQL = SQL.TrimEnd("+")

SQL += " as " + NameNewColumns

SQL += " From " + Step_3_TableName

'MsgBox(SQL)

Da = New OleDbDataAdapter(SQL, Conn)

DS.Clear()

Da.Fill(DS, Step_3_TableName)

Catch Ex As OleDbException

MsgBox(Ex.Message, , "Error On Sum Columns")

End Try

End Sub



Public Sub Minas_Columns(ByVal ColumnsShow() As String, ByVal ColumnsNameMinas() As String, Optional ByVal NameNewColumns As String = "MinasColumns")

Try

SQL = "Select "

For I As Integer = 0 To ColumnsShow.Length - 1

SQL += "[" + ColumnsShow(I) + "],"

Next

For I As Integer = 0 To ColumnsNameMinas.Length - 1

SQL += "[" + ColumnsNameMinas(I) + "]-"

Next

SQL = SQL.TrimEnd("-")

SQL += " as " + NameNewColumns

SQL += " From " + Step_3_TableName

'MsgBox(SQL)

Da = New OleDbDataAdapter(SQL, Conn)

DS.Clear()

Da.Fill(DS, Step_3_TableName)

Catch Ex As OleDbException

MsgBox(Ex.Message, , "Error On Minas Columns")

End Try

End Sub



Public Sub Tarb_Columns(ByVal ColumnsShow() As String, ByVal ColumnsNameTarb() As String, Optional ByVal NameNewColumns As String = "TarbColumns")

Try

SQL = "Select "

For I As Integer = 0 To ColumnsShow.Length - 1

SQL += "[" + ColumnsShow(I) + "],"

Next

For I As Integer = 0 To ColumnsNameTarb.Length - 1

SQL += "[" + ColumnsNameTarb(I) + "]*"

Next

SQL = SQL.TrimEnd("*")

SQL += " as " + NameNewColumns

SQL += " From " + Step_3_TableName

'MsgBox(SQL)

Da = New OleDbDataAdapter(SQL, Conn)

DS.Clear()

Da.Fill(DS, Step_3_TableName)

Catch Ex As OleDbException

MsgBox(Ex.Message, , "Error On Tarb Columns")

End Try

End Sub



Public Sub Kesma_Columns(ByVal ColumnsShow() As String, ByVal ColumnsNameKesma() As String, Optional ByVal NameNewColumns As String = "KesmaColumns")

Try

SQL = "Select "

For I As Integer = 0 To ColumnsShow.Length - 1

SQL += "[" + ColumnsShow(I) + "],"

Next

For I As Integer = 0 To ColumnsNameKesma.Length - 1

SQL += "[" + ColumnsNameKesma(I) + "]/"

Next

SQL = SQL.TrimEnd("/")

SQL += " as " + NameNewColumns

SQL += " From " + Step_3_TableName

'MsgBox(SQL)

Da = New OleDbDataAdapter(SQL, Conn)

DS.Clear()

Da.Fill(DS, Step_3_TableName)

Catch Ex As OleDbException

MsgBox(Ex.Message, , "Error On Kesma Columns")

End Try

End Sub



Public Function MaxVal_Columns(ByVal ColumnName As String) As Double

Try

SQL = "Select Max(" + ColumnName + ") From " + Step_3_TableName

If Conn.State = ConnectionState.Closed Then Conn.Open()

Cmd = New OleDbCommand(SQL, Conn)

Cmd.ExecuteScalar()

Return Cmd.ExecuteScalar()

If Conn.State = ConnectionState.Open Then Conn.Close()

Catch Ex As OleDbException

MsgBox(Ex.Message, , "Error On Return Max Value")

End Try

End Function



Public Function MinVal_Columns(ByVal ColumnName As String) As Double

Try

SQL = "Select Min(" + ColumnName + ") From " + Step_3_TableName

If Conn.State = ConnectionState.Closed Then Conn.Open()

Cmd = New OleDbCommand(SQL, Conn)

Cmd.ExecuteScalar()

Return Cmd.ExecuteScalar()

If Conn.State = ConnectionState.Open Then Conn.Close()

Catch Ex As OleDbException

MsgBox(Ex.Message, , "Error On Return Min Value")

End Try

End Function

End Class

إن شاء الله من المشاركة القادمه سوف نبدأ التفصيل

[/وسط]

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…