PDA

View Full Version : سوال: مشکل در اتصال به پایگاه داده



silvery
سه شنبه 17 تیر 1393, 11:03 صبح
سلام من دارم یه برنامه مینویسم که داخلش از دستورات پایگاه داده استفاده کردم.کاری که من کردم اینه که هربار برای ارتباط با پایگاه داده یه connection string تعریف کردم.بصورت زیر:




public partial class Ticket : Form
{
public Ticket()
}

SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|datadirector y|\TicketDb.mdf;Integrated Security=True;User Instance=True");
SqlCommand com;
SqlDataAdapter da;
DataTable dt = new DataTable();

private void Ticket_Load(object sender, EventArgs e)
{

da = new SqlDataAdapter("Select * from TicketTB", con);
try
{

da.Fill(dt);
dgwTicket.DataSource = dt;
}



و بعد از اون بصورت زیر ازش استفاده کردم:





com = new SqlCommand("insert into TicketTB(شماره_پرواز,تاریخ,اپرا تور,خریدار,مبدا_مقصد,تعداد, یعانه,باقیمانده) values
( @Pnum , @Date , @Seller , @Customer , @Destination , @Count , @Prepayment , @Rest )", con);
com.Parameters.AddWithValue("@Pnum", PlaneNumtxt.Text.Trim());
com.Parameters.AddWithValue("@Seller", operatorcmb.Text.Trim());
com.Parameters.AddWithValue("@Customer", customercmb.Text.Trim());
com.Parameters.AddWithValue("@Destination", planecmb.Text.Trim());
com.Parameters.AddWithValue("@Date", Datetxt.Text.Trim());
com.Parameters.AddWithValue("@Count", Counttxt.Text.Trim());
com.Parameters.AddWithValue("@Prepayment", prepeytxt.Text.Trim());
com.Parameters.AddWithValue("@Rest", Resttxt.Text.Trim());

if (con.State == ConnectionState.Closed)
con.Open();
com.ExecuteNonQuery();

da = new SqlDataAdapter("Select * from TicketTB", con);
dt.Clear();
da.Fill(dt);
dgwTicket.DataSource = dt;


اما خب متوجه شدم که این روش بهینه نیست و بهتره از کلاس استفاده کنم.بنابراین ککلاس زیر رو ساختم ولی مشکلم اینجاس که چجوری باید فراخوانیش بکنم؟!





class SQLServerDBMS
{

SqlConnection con = new SqlConnection();
SqlCommand com = new SqlCommand();
string SqlConnectionstring=
"Data Source=TicketDb.mdf"
+"Integrated Security=True"
+"User Instance=True";

public SQLServerDBMS()
{
con = new SqlConnection(SqlConnectionstring);
com.Connection = con;
}

public SQLServerDBMS(params SqlParameter[] parametrs)
{
con = new SqlConnection(SqlConnectionstring);
com.Connection = con;
foreach (SqlParameter parametr in parametrs)
{
com.Parameters.Add(parametr);
}

}
public DataTable ExecuteSelectSQL(String strSQL)
{
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = con;
da.SelectCommand.CommandText = strSQL;
da.Fill(dt);
con.Close();
return dt;
}

public void executeSQL(String strSQL)
{
com.CommandText = strSQL;
con.Open();
com.EndExecuteNonQuery(); ;
con.Close();
}