کپی جدول sql در جدول اکسس

ساخت وبلاگ

با این کد اطلاعات رو از sql میخونم و توی جدول نمایش میدم:

اما کدی که خط به خط میخونم و توی اکسس ذخیره میکنم اینه:

cmdDBTransfer.Connection = conDBTransfer;
cmdDBTransfer.CommandType = CommandType.Text;
cmdDBTransfer.CommandText = "Delete * from TBL_Master";
conDBTransfer.Open();
cmdDBTransfer.ExecuteNonQuery();
conDBTransfer.Close();
cmdDBTransfer.Parameters.Clear();
int tedade = Convert.ToInt16(dgPersenel.RowCount.ToString()) - 1;for (int i = 0; i <= tedade; i++)
{
Application.DoEvents();
cmdDBTransfer.Connection = conDBTransfer;
cmdDBTransfer.CommandType = CommandType.Text;
cmdDBTransfer.CommandText = "INSERT INTO TBL_Master(Rank, Br, FirstName, LastName, PersonalCode, TOT, N, F, T, T2, a, JOB, UD) VALUES (@Rank=,@Branch=,@FirstName,@LastName,@PersonalCod e,@TOT=,@N=,@F=,@T=,@T2,@a=,@JOB=,@UD)";
cmdDBTransfer.Parameters.AddWithValue("@Rank", dgPersenel.Rows[i].Cells[0].Value.ToString());
cmdDBTransfer.Parameters.AddWithValue("@Branch", dgPersenel.Rows[i].Cells[1].Value.ToString());
cmdDBTransfer.Parameters.AddWithValue("@FirstName" , dgPersenel.Rows[i].Cells[2].Value.ToString());
cmdDBTransfer.Parameters.AddWithValue("@LastName", dgPersenel.Rows[i].Cells[3].Value.ToString());
cmdDBTransfer.Parameters.AddWithValue("@PersonalCo de", dgPersenel.Rows[i].Cells[4].Value.ToString());if (dgPersenel.Rows[i].Cells[5].Value.ToString() != "")
{
cmdDBTransfer.Parameters.AddWithValue("@TOT", TOT(dgPersenel.Rows[i].Cells[5].Value.ToString()));
}
else
{
cmdDBTransfer.Parameters.AddWithValue("@TOT", "000000");
}if (dgPersenel.Rows[i].Cells[6].Value.ToString() != "")
n = Convert.ToInt16(dgPersenel.Rows[i].Cells[6].Value.ToString());
else
n = 0;
cmdDBTransfer.Parameters.AddWithValue("@N", n);if (dgPersenel.Rows[i].Cells[7].Value.ToString() != "")
f = Convert.ToInt16(dgPersenel.Rows[i].Cells[7].Value.ToString());
else
f = 0;
cmdDBTransfer.Parameters.AddWithValue("@F", f);if (dgPersenel.Rows[i].Cells[8].Value.ToString() != "")
t = Convert.ToInt16(dgPersenel.Rows[i].Cells[8].Value.ToString());
else
t = 0;
cmdDBTransfer.Parameters.AddWithValue("@T", t);if (dgPersenel.Rows[i].Cells[9].Value.ToString() != "")
t2 = Convert.ToInt16(dgPersenel.Rows[i].Cells[9].Value.ToString());
else
t2 = 0;
cmdDBTransfer.Parameters.AddWithValue("@T2", t2);if (dgPersenel.Rows[i].Cells[10].Value.ToString() != "")
boy = int.Parse(dgPersenel.Rows[i].Cells[10].Value.ToString());
else
boy = 0;if (dgPersenel.Rows[i].Cells[11].Value.ToString() != "")
wif = int.Parse(dgPersenel.Rows[i].Cells[11].Value.ToString());
else
wif = 0;if (dgPersenel.Rows[i].Cells[12].Value.ToString() != "")
fam = int.Parse(dgPersenel.Rows[i].Cells[12].Value.ToString());
else
fam = 0;if (dgPersenel.Rows[i].Cells[13].Value.ToString() != "")
dot = int.Parse(dgPersenel.Rows[i].Cells[13].Value.ToString());
else
dot = 0;a = boy + wif + fam + dot;
cmdDBTransfer.Parameters.AddWithValue("@a", a);
cmdDBTransfer.Parameters.AddWithValue("@JOB", dgPersenel.Rows[i].Cells[14].Value.ToString());
cmdDBTransfer.Parameters.AddWithValue("@UD", dgPersenel.Rows[i].Cells[15].Value.ToString());conDBTransfer.Open();
cmdDBTransfer.ExecuteNonQuery();
conDBTransfer.Close();
cmdDBTransfer.Parameters.Clear();
pb1.Value = pb1.Value + 1;// پروگرس بار
if (i != 0)
lblper1.Text = "%" + (i * 100 / tedade_enteghalaat); // درصد پیشرفت
}
MessageBox.Show("ثبت شد");

کد بالا زمان زیاد میبره. من چند تا قسمت دارم که با همین روش مجبور شدم کارشو انجام بدم که اونا تازه خیلی بیشتر کارای محاسباتی باید انجام بشه و زمان خیلی بیشتری هم میبره ذخیره کردنشون.

توی کد دومی اگه دقت کنید یه سری اعمال هم انجام دادم که البته به طور خلاصه همون چیزی که همون ابتدا گفتم رو میخوام انجام بدم. یعنی کپی یه جدول از Sql به جدولی در اکسس. حالا اگه یه سری تغییرات هم داشته باشه میخوام انجام بدم بعدش ذخیرش کنم. فقط سرعت برام خیلی مهمه . چون جداولم داده های خیلی زیادی دارن.

ممنون از توجهتون

برنامه نویس...
ما را در سایت برنامه نویس دنبال می کنید

برچسب : نویسنده : محمد رضا جوادیان programers بازدید : 243 تاريخ : دوشنبه 9 بهمن 1396 ساعت: 19:11