PDA

View Full Version : سوال: کمکی برای نوشتن یه کلاس برای استفاده از شی های sql server



Twoplus2010
چهارشنبه 27 بهمن 1389, 14:25 عصر
سلام دوستان
من می خوام برنامه ای رو طراحی کنم و می خوام برناممو به بانک اطلاعاتی sql server وصل کنم می خواستم یه کلاسی بنویسم که بتونم از اون تو تمام فرمهای که نیاز وصل شدن به پایگاه داده رو دارن استفاده کنم قبلا میومدم
تو هر فرمی که نیاز وصل شدن به پایگاه داده داشت یه شی sql connection می ساختم و بقیه دستورات اسکیوال رو می نوشتم از بچها که سوال کردم گفتند روش کارم اشتباه می باشد اونا گفتن باید یه کلاسی رو طراحی کنم
و از اون کلاس تو تمام فرمام استفاده کنم دلیلشو که سوال کردم گفتن اگه بخوای هر دفعه یه شی از sql server رو
تو برنامت بسازی حجم برنامت میره بالا و سرعت برنامت میاد پایین حالا من یه خواهشی ازتون دارم اگه محبتی کنید و یه کمکی به این دوست مبتدی تون بکنید اگه نمونه برنامه ای دارید برام بگذارید انشالله منظورمو فهمیده باشید متشکرم:قلب:

gerdioz
چهارشنبه 27 بهمن 1389, 21:21 عصر
سلام این یه کلاس برای شما البته شاید کمی ناخوانا باشه من با چند مثال توضیح دادم


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data.SqlClient;

using System.Windows.Forms;

using System.Data;

using System.Data.OleDb;



namespace ClobManager

{

class ConnectionClass

{

اتصال به بانک

string ConnectionString = "Data Source=;Initial Catalog=Clup;integrated security=sspi";

SqlCommand command = new SqlCommand();

SqlConnection connection = new SqlConnection();

اجرای فرامین برای بانک حذف اضافه یا ویرایش

public void ExecuteNonQuery(string CommandText,string title)

{

try

{

connection.ConnectionString = ConnectionString;

connection.Open();

command.CommandText = CommandText;

command.Connection = connection;

command.ExecuteNonQuery();

command.Dispose();

connection.Close();

MessageBox.Show(title);

}

catch (Exception err)

{

MessageBox.Show(err.ToString());

}

}

برای نمایش اطلاعات در دیتا گرید

public void View(string SelectQuery, DataGridView dt)

{

connection.Close();

connection.ConnectionString = ConnectionString;

connection.Open();

SqlDataAdapter adaptor = new SqlDataAdapter(SelectQuery, connection);

DataTable dtt = new DataTable();

adaptor.Fill(dtt);

dt.DataSource = dtt;

connection.Close();

}

برای پر کردن کومبوباکس

public void Load_Combo(string Query, ComboBox cb)

{

cb.Items.Clear();

DataGridView dt = new DataGridView();

connection.ConnectionString = ConnectionString;

connection.Open();

SqlDataAdapter adaptor = new SqlDataAdapter(Query, connection);

DataTable dtt = new DataTable();

adaptor.Fill(dtt);

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

cb.Items.Add(dtt.Rows[i][0].ToString());

connection.Close();

}

برای برگشت یک مقدار از بانک

public string Back_Query(string Query)

{

try

{

string back_string;

DataGridView dt = new DataGridView();

connection.ConnectionString = ConnectionString;

connection.Open();

SqlDataAdapter adaptor = new SqlDataAdapter(Query, connection);

DataTable dtt = new DataTable();

adaptor.Fill(dtt);

back_string = dtt.Rows[0][0].ToString();

connection.Close();

return back_string;

}

catch

{

return "خطای 01-- با مسئول مربوطه تماس حاصل فرمائید";

}

}

جهت تست وجود یک مقدار در بانک

public String exist(string Query)

{

try

{

string back_string;

DataGridView dt = new DataGridView();

connection.ConnectionString = ConnectionString;

connection.Open();

SqlDataAdapter adaptor = new SqlDataAdapter(Query, connection);

DataTable dtt = new DataTable();

adaptor.Fill(dtt);

back_string = dtt.Rows[0][0].ToString();

connection.Close();

return back_string;

}

catch

{

return "NoExist";

}

}



}

}

}

//مثال

Connectionclass con=new connectionclass();

Con. ExecuteNonQuery("insert into tbl values('"++"')","ثبت با موفقیت انجام گردید");

Con.View("select * from tbl",datagridview1);

Con. Load_Combo("select id from tbl",combo1);

String x=con. Back_Query("select id from tbl where nam='"+name+"'");

If (con. Exist("select uname from login where username='"+user.text+" and pass='"+pass.text+"'')=="NoExist";)

Twoplus2010
چهارشنبه 27 بهمن 1389, 22:36 عصر
اقا مرسی
متشکرم رفیق