کلاس کار با پایگاه داده 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;
}
}
}
}

ممنون که اینجور کدا رو میذارین تا مبتدیایی مثل من یاد بگیرن.