PDA

View Full Version : درخواست راهنمایی در ساخت کلاسی برای بانک های اطلاعاتی



Jean Reno
یک شنبه 03 خرداد 1388, 11:48 صبح
با سلام
من مدتی پیش مثالی رو از یکی از دوستان در این تالار در مورد ساخت یک کلاس جهت استفاده در بانک های اطلاعاتی دریافت کردم

کد اون رو کمی ویرایش کردم اگه از دوستان کسی لطف کنه و در مورد توابع و پارامترهایی که تعریف شده توضیحی بده ممنون میشم

این که هر تابع تعریف شده در این کلاس چیکار میکنه ؟
من از تابع connect در فرم استفاده کردم و خطای زمان اجرا داد
ممنون می شم اگه کسی کمکم کنه و یا مطلبی در مورد ساخت یک کلاس کلی برای این بانک ها به من معرفی کنه



class my_database
{
private string Conn_str="Data Source=Local ;Initial Catalog=sample;Integrated Security=True";

private SqlConnection Obj_conn;
private SqlCommand obj_comm;
private SqlDataAdapter obj_adap;

public bool open = false;

public my_database()
{
Obj_conn = new SqlConnection();
obj_comm = new SqlCommand();
obj_adap = new SqlDataAdapter();

obj_comm.Connection = Obj_conn;
obj_adap.SelectCommand = obj_comm;

Obj_conn.ConnectionString = Conn_str;

}

public my_database(string ConnectionString)
{
Obj_conn = new SqlConnection();
obj_comm = new SqlCommand();
obj_adap = new SqlDataAdapter();

obj_comm.Connection = Obj_conn;
obj_adap.SelectCommand = obj_comm;
Obj_conn.ConnectionString = ConnectionString;
Obj_conn.Open();
open = true;
}

public void connect()
{
try
{
if (!open)
{
Obj_conn.Open();
open = true;
}
}
catch
{
MessageBox.Show("خطا در ایجاد ارتباط با پایگاه داده", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
// AppLog.logXmlFile(exp, AppLog.AppLogType.Handled);
}
}

public SqlDataAdapter myda(string strsql)
{

connect();
SqlDataAdapter da = new SqlDataAdapter(strsql, Obj_conn);
return da;

}

public void disconnect()
{
try
{
Obj_conn.Close();
open = false;
}
catch (Exception exp)
{
MessageBox.Show("خطا در هنگام قطع ارتباط با پایگاه داده", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
// AppLog.logXmlFile(exp, AppLog.AppLogType.Handled);
}
}

public int doSPU1(SqlCommand cmd)
{
cmd.Connection = Obj_conn;
return cmd.ExecuteNonQuery();
}

public SqlDataReader doSPU2(SqlCommand cmd)
{
try
{
cmd.Connection = Obj_conn;
return cmd.ExecuteReader();
}
catch (Exception exp)
{
MessageBox.Show("خطا در انجام فرمان پایگاه داده", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
// AppLog.logXmlFile(exp, AppLog.AppLogType.Handled);
return null;
}

}

public int docommand(string sql)
{
try
{
connect();
obj_comm.CommandText = sql;
obj_comm.Connection = Obj_conn;
return obj_comm.ExecuteNonQuery();
}
catch (Exception exp)
{
MessageBox.Show("خطا در انجام فرمان پایگاه داده", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
// AppLog.logXmlFile(exp, AppLog.AppLogType.Handled);
return -1;
}

}

public bool read(string sql, SqlDataReader r)
{
try
{
obj_comm.CommandText = sql;
r = obj_comm.ExecuteReader();
return r.Read();
}
catch (Exception exp)
{
MessageBox.Show("خطا در انجام فرمان پایگاه داده", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
// AppLog.logXmlFile(exp, AppLog.AppLogType.Handled);
return false;
}

}

public DataTable select(string sql)
{
try
{
DataTable DT = new DataTable();
obj_comm.CommandText = sql;
obj_adap.Fill(DT);
return DT;
}
catch (Exception exp)
{
MessageBox.Show("خطا در انجام فرمان پایگاه داده", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
// AppLog.logXmlFile(exp, AppLog.AppLogType.Handled);
return null;
}

}




}

Jean Reno
دوشنبه 04 خرداد 1388, 09:53 صبح
ممنون می شم اگه کسی پاسخ ما رو بده
شاید سوالم کمی عجیب باشه اما واقعا لنگ این موندم
نمی خوام برای هر فرمم یک کانکشن و دیتاآداپتر بسازم
این روشی که بالا پیدا کردم خیلی خوب بود اما دقیق اطلاع ندارم که روند استفاده باید چطور باشه ؟

saeeedft
دوشنبه 04 خرداد 1388, 10:43 صبح
سلام،راه های زیادی برای این کار(نوشتن کانکشن در یک جا وصدا زدن اون )وجود داره،یکی از اون راه هاش اینه: اول یک کلاسی به نام libویا هر نام دیگری بسازید بعد کد های زیر را در اون بنوییسید"
;public static sqlconnection con
این کد برای ساخت شی کانکشن هست،سپس یک تابع بنویسید و رشته اتصال را در اون قرار بدید:
()public static void constr
;con=new sqlconnection

"con.connectionstring="datasource=local;initialcatalog=database name;integrated security=true
حالا هر وقت خواستی از این کلاس استفاده کنید کافیست lib.constr()رو صدا بزنید