PDA

View Full Version : سوال: بررسی صحت کدهای اتصال به DB



NasimBamdad
شنبه 09 دی 1391, 11:32 صبح
سلام و خسته نباشید

دارم سعی می کنم کد هام رو بهینه کنم . البته باید از کلاس برای ارتباط با DBو ... استفاده کنم

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

در قسمت Public Partial class 2 تا کد زیر رو وارد کردم

SqlConnection cnn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
SqlCommand cmd = new SqlCommand();

یعنی به این صورت


namespace NoorAutomation
{
public partial class daroo_tajhizat : Form
{
string ConnectionString = ConfigurationManager.AppSettings["ConnectionString"];
SqlConnection cnn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
SqlCommand cmd = new SqlCommand();

public daroo_tajhizat()
{
InitializeComponent();

}



سپس برای ارتباط با دیتابیس از این کد استفاده کردم


cmd.Connection = cnn;
cnn.Open();
cmd.CommandText = "INSERT INTO tajhiz_usage(patientid,tajid,numberz) VALUES (@patientid,@tajid,@numberz)";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@patientid", PID);
cmd.Parameters.AddWithValue("@tajid", 193);
cmd.Parameters.AddWithValue("@numberz", textBox284.Text);
cmd.ExecuteNonQuery();
cnn.Close();


آیا این کد ها صحیح هستند و بهینه ؟ آیا در صورت استفاده متوالی و پشت سر هم از این کد ها مشکلی بوجود نمیاد ؟

بعضی وقت ها یک اررور مبنی بر Connection Was Lost دریافت می کنم !

morteza271
شنبه 09 دی 1391, 11:48 صبح
سلام.
بهترین روش اینه که یک کلاس برای دیتابیس ایجاد کنید و داخل یک کانکشن که همیشه همون کانکشن رو باز و بسته کنید و کانکشن های اضافی ایجاد نکنید. (که البته گفتین فعلا وقتشو ندارین!!! هرچند زیاد وقت نمیخواد ولی خوب نظر خودتونه)...


روشی که الان هم استفاده میکنید مشکل خاصی نداره.
البته من خودم ترجیح میدم همین روش شما رو به صورت زیر استفاده کنم :
SqlConnection cnn;
SqlCommand cmd;

public daroo_tajhizat()
{
InitializeComponent();

cnn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
cmd = new SqlCommand();
}

بقیش هم مثل همونی که گذاشتین.

البته بازم میگم بهترین روش همون ساخت کلاسه...
موفق باشید