با این کد اطلاعات رو از sql میخونم و توی جدول نمایش میدم:
اما کدی که خط به خط میخونم و توی اکسس ذخیره میکنم اینه:
cmdDBTransfer.Coection = 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.Coection = 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 به جدولی در اکسس. حالا اگه یه سری تغییرات هم داشته باشه میخوام انجام بدم بعدش ذخیرش کنم. فقط سرعت برام خیلی مهمه . چون جداولم داده های خیلی زیادی دارن.
ممنون از توجهتون
برچسب:
نویسنده: محمد رضا جوادیان