hamidre13
شنبه 20 خرداد 1391, 23:45 عصر
سلام دوستان
من یه برنامه دارم که دیتابیسش اکسس هست ولی هر از چند وقتی برنامه باید توسط دیتالیس اکسس آپدیت شه من کد اینجوری نوشتم ولی متاسفانه این روش خیلی جالب نیست و حتی گاهی اوقات تا سه چهار ساعت سیستم لاک میشه و بعدش هم برنامه دیگه کار نمیکنه:
کد:
SqlConnection mydbcon = new SqlConnection();
mydbcon.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\mainTTT.mdf;Integrated Security=True;User Instance=True";
SqlCommand inser = new SqlCommand();
inser.Connection = mydbcon;
mydbcon.Open();
inser.CommandText = "select * from master where code = @param";
inser.Parameters.AddWithValue("@param", tmpcod);
SqlDataReader rod = inser.ExecuteReader();
if (!rod.Read())
{
SqlConnection indbcon = new SqlConnection();
indbcon.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\mainTTT.mdf;Integrated Security=True;User Instance=True";
SqlCommand insermas = new SqlCommand();
insermas.Connection = indbcon;
indbcon.Open();
insermas.CommandText = "insert into master(code,cd_name,qnote,cd_serial_number,price,p roducer,[print])values(@cod,@nam,@desp,@serial,@prc,@producter,@c atgory)";
insermas.Parameters.AddWithValue("@cod", int.Parse(tmpcod.ToString()));
insermas.Parameters.AddWithValue("@nam", tmpname);
insermas.Parameters.AddWithValue("@desp", tmpnote);
insermas.Parameters.AddWithValue("@serial", tmpcdserial);
insermas.Parameters.AddWithValue("@prc", tmpprc);
insermas.Parameters.AddWithValue("@catgory", tmpcatgor);
insermas.Parameters.AddWithValue("@producter", tmpprod);
insermas.ExecuteNonQuery();
indbcon.Close();
temp.Open();
OleDbCommand tmpsoft = new OleDbCommand();
tmpsoft.Connection = temp;
tmpsoft.CommandText = "select * from softbank where code_software = @param";
tmpsoft.Parameters.AddWithValue("@param", tmpcod);
OleDbDataReader rsd = tmpsoft.ExecuteReader();
while(rsd.Read())
{
indbcon.Open();
SqlCommand insesoft = new SqlCommand();
insesoft.Connection = indbcon;
insesoft.CommandText = "insert into softbank (code_software,name,software_category) values (@cod,@nme,@cat) ";
insesoft.Parameters.AddWithValue("@cod", rsd["code_software"].ToString());
insesoft.Parameters.AddWithValue("@nme", rsd["name"].ToString());
insesoft.Parameters.AddWithValue("@cat", rsd["software_category"].ToString());
insesoft.ExecuteNonQuery();
indbcon.Close();
}
temp.Close();
به نظر شما بهترین راه واسه آپدیت این دیتابیس چی هست و آیا روش بهتری واسه نوشتن این کد وجود داره؟
من یه برنامه دارم که دیتابیسش اکسس هست ولی هر از چند وقتی برنامه باید توسط دیتالیس اکسس آپدیت شه من کد اینجوری نوشتم ولی متاسفانه این روش خیلی جالب نیست و حتی گاهی اوقات تا سه چهار ساعت سیستم لاک میشه و بعدش هم برنامه دیگه کار نمیکنه:
کد:
SqlConnection mydbcon = new SqlConnection();
mydbcon.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\mainTTT.mdf;Integrated Security=True;User Instance=True";
SqlCommand inser = new SqlCommand();
inser.Connection = mydbcon;
mydbcon.Open();
inser.CommandText = "select * from master where code = @param";
inser.Parameters.AddWithValue("@param", tmpcod);
SqlDataReader rod = inser.ExecuteReader();
if (!rod.Read())
{
SqlConnection indbcon = new SqlConnection();
indbcon.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\mainTTT.mdf;Integrated Security=True;User Instance=True";
SqlCommand insermas = new SqlCommand();
insermas.Connection = indbcon;
indbcon.Open();
insermas.CommandText = "insert into master(code,cd_name,qnote,cd_serial_number,price,p roducer,[print])values(@cod,@nam,@desp,@serial,@prc,@producter,@c atgory)";
insermas.Parameters.AddWithValue("@cod", int.Parse(tmpcod.ToString()));
insermas.Parameters.AddWithValue("@nam", tmpname);
insermas.Parameters.AddWithValue("@desp", tmpnote);
insermas.Parameters.AddWithValue("@serial", tmpcdserial);
insermas.Parameters.AddWithValue("@prc", tmpprc);
insermas.Parameters.AddWithValue("@catgory", tmpcatgor);
insermas.Parameters.AddWithValue("@producter", tmpprod);
insermas.ExecuteNonQuery();
indbcon.Close();
temp.Open();
OleDbCommand tmpsoft = new OleDbCommand();
tmpsoft.Connection = temp;
tmpsoft.CommandText = "select * from softbank where code_software = @param";
tmpsoft.Parameters.AddWithValue("@param", tmpcod);
OleDbDataReader rsd = tmpsoft.ExecuteReader();
while(rsd.Read())
{
indbcon.Open();
SqlCommand insesoft = new SqlCommand();
insesoft.Connection = indbcon;
insesoft.CommandText = "insert into softbank (code_software,name,software_category) values (@cod,@nme,@cat) ";
insesoft.Parameters.AddWithValue("@cod", rsd["code_software"].ToString());
insesoft.Parameters.AddWithValue("@nme", rsd["name"].ToString());
insesoft.Parameters.AddWithValue("@cat", rsd["software_category"].ToString());
insesoft.ExecuteNonQuery();
indbcon.Close();
}
temp.Close();
به نظر شما بهترین راه واسه آپدیت این دیتابیس چی هست و آیا روش بهتری واسه نوشتن این کد وجود داره؟