try
{
frmUpdateBank.ActiveForm.Cursor = Cursors.WaitCursor;
cmd.Connection = con;
cmd.CommandText = (txtcmd.Text);
adp = new SqlDataAdapter(cmd);
adp.Fill(ds, "Qry_BAS");
dgPersenel.DataSource = ds.Tables["Qry_BAS"];
frmUpdateBank.ActiveForm.Cursor = Cursors.Default;
}
catch
{
MessageBox.Show("خطایی رخ داده است", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
frmUpdateBank.ActiveForm.Cursor = Cursors.Default;
}
کد بالا زمان نمیبره و اطلاعات رو میخونه و نشون میده.
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 به جدولی در اکسس. حالا اگه یه سری تغییرات هم داشته باشه میخوام انجام بدم بعدش ذخیرش کنم. فقط سرعت برام خیلی مهمه . چون جداولم داده های خیلی زیادی دارن.
ممنون از توجهتون