کلاس کار با پایگاه داده SQL و Access در #C
پنجشنبه, ۱۰ بهمن ۱۳۹۲، ۱۱:۱۸ ق.ظ
مدتیه که دارم روی یه پروژهی تجاری با #C کار میکنم. حیف که نشد این کار رو با Qt عزیز انجام بدم. همونطور که میدونید کار با دیتابیس توی #C سخت و زمانبره، برای همین یه کلاس نوشتم که کارهایی مثل برگردوندن DataTable ، DataSet و DataAdapter و همین طور اجرای دستورات SQL رو انجام بده. از این کلاس برای هر دو پایگاه دادهی Access و SQL میشه استفاده کرد. فقط کافیه که از NameSpace مربوطه استفاده کنید.
کلاس رو اینجا میذارمش شاید به درد شما هم بخوره.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.OleDb; using System.Data.SqlClient; using System.Windows.Forms; namespace databaseConnection { namespace SQL{ class DBClass { SqlConnection con; SqlCommand com; SqlDataAdapter da; DataSet ds; DataTable dt; SqlDataReader dr; public DBClass() { con = new SqlConnection(@"Server=.;Database=DATABASE_NAME;Trusted_Connection=Yes;"); } private SqlConnection OpenConnection() { if (con.State == System.Data.ConnectionState.Closed || con.State == System.Data.ConnectionState.Broken) con.Open(); return con; } private SqlConnection CloseConnection() { if (con.State == System.Data.ConnectionState.Open) con.Close(); return con; } public bool runQuery(string sqlQuery) { string command = sqlQuery; com = new SqlCommand(); try { com.Connection = OpenConnection(); com.CommandText = command; com.ExecuteNonQuery(); return true; } catch (Exception Ex) { MessageBox.Show(Ex.ToString(), "DB Error"); return false; } finally { con.Close(); com = null; } } public DataTable returnDataTable(string sqlQuery) { da = new SqlDataAdapter(); com = new SqlCommand(); string command = sqlQuery; dt = new DataTable(); try { com.Connection = OpenConnection(); com.CommandText = command; da.SelectCommand = com; da.Fill(dt); return dt; } catch (Exception Ex) { MessageBox.Show(Ex.ToString(), "DB Error"); } finally { com = null; con.Close(); } return dt; } public DataSet returnDataSet(string sqlQuery) { com = new SqlCommand(); string command = sqlQuery; ds = new DataSet(); try { OpenConnection(); com = con.CreateCommand(); da = new SqlDataAdapter(command, con); ds.Reset(); da.Fill(ds); return ds; } catch (Exception Ex) { MessageBox.Show(Ex.ToString(), "DB Error"); } finally { com = null; con.Close(); } return ds; } public SqlDataReader returnDataReader(string sqlQuery) { string command = sqlQuery; try { com = con.CreateCommand(); com.CommandText = command; dr = com.ExecuteReader(); return dr; } catch (Exception Ex) { MessageBox.Show(Ex.ToString(), "DB Error"); } finally { con.Close(); com = null; } return dr; } } } namespace OLEDB { class DBClass { OleDbConnection con; OleDbCommand com; OleDbDataAdapter da; DataSet ds; DataTable dt; OleDbDataReader dr; public DBClass() { con = new OleDbConnection("provider=microsoft.jet.oledb.4.0; data source=DATABASE_NAME.mdb"); } private OleDbConnection OpenConnection() { if (con.State == System.Data.ConnectionState.Closed || con.State == System.Data.ConnectionState.Broken) con.Open(); return con; } private OleDbConnection CloseConnection() { if (con.State == System.Data.ConnectionState.Open) con.Close(); return con; } public bool runQuery(string sqlQuery) { string command = sqlQuery; com = new OleDbCommand(); try { com.Connection = OpenConnection(); com.CommandText = command; com.ExecuteNonQuery(); return true; } catch (Exception Ex) { MessageBox.Show(Ex.ToString(), "DB Error"); return false; } finally { con.Close(); com = null; } } public DataTable returnDataTable(string sqlQuery) { da = new OleDbDataAdapter(); com = new OleDbCommand(); string command = sqlQuery; dt = new DataTable(); try { com.Connection = OpenConnection(); com.CommandText = command; da.SelectCommand = com; da.Fill(dt); return dt; } catch (Exception Ex) { MessageBox.Show(Ex.ToString(), "DB Error"); } finally { com = null; con.Close(); } return dt; } public DataSet returnDataSet(string sqlQuery) { com = new OleDbCommand(); string command = sqlQuery; ds = new DataSet(); try { OpenConnection(); com = con.CreateCommand(); da = new OleDbDataAdapter(command, con); ds.Reset(); da.Fill(ds); return ds; } catch (Exception Ex) { MessageBox.Show(Ex.ToString(), "DB Error"); } finally { com = null; con.Close(); } return ds; } public OleDbDataReader returnDataReader(string sqlQuery) { string command = sqlQuery; try { com = con.CreateCommand(); com.CommandText = command; dr = com.ExecuteReader(); return dr; } catch (Exception Ex) { MessageBox.Show(Ex.ToString(), "DB Error"); } finally { con.Close(); com = null; } return dr; } } } }
ممنون که اینجور کدا رو میذارین تا مبتدیایی مثل من یاد بگیرن.