samanff2000
پنج شنبه 26 اسفند 1400, 12:07 عصر
با سلام خدمت تمام دوستان
من دارم یه برنامه مینویسم که باید هر ماه یکسری مقادیر رو که توسط فایل CSV گرفته میشه در برنامه وارد کنم . برای این کار دو نوع کد نوشتم و زمان هردو بسیار زیاد بود (برای 100000 رکورد حدود 5دقیقه و 20 ثانیه زمان) با توجه به اینکه فایل های ورودی حدودا بالای 10 میلیون رکورد دارن(و حدود 60 ستون) این نوع ورود اطلاعات خیلی کند و زمان بر خواهد بود . آیا روش دیگه ای هست که بشه اطلاعات رو با زمان کمتری وارد SQL کرد ؟ البته نه از خود SQL و حتما توسط برنامه این کار انجام بشه .
با تشکر
string line;
int i = 0;
using (System.IO.StreamReader sr = new System.IO.StreamReader(File_name))
{
while (!sr.EndOfStream)
{
line = sr.ReadLine();
if (i == 0)
{ i++; }
else
{
string[] tokens = line.Split(',');
a = DataSet.tashilat.NewRow();
a["IDTASHILAT"] = tokens[0].Replace('"', ' ').Trim();
a["BRNCH_COD"] = tokens[1].Replace('"', ' ').Trim();
a["LOAN_MINOR_TYPE"] = tokens[2].Replace('"', ' ').Trim();
.
.
.
DataSet.tashilat.Rows.Add(a);
i++;
}
}
tashilat TableAdapter.Update(DataSet.tashilat);
sr.Close();
MessageBox.Show("عملیات با موفقیت به پایان رسید /n تعداد '" + "" + "'رکورد ثبت گردید", "ثبت دیتا", MessageBoxButtons.OK, MessageBoxIcon.Information);
progressBar1.Visible = false;
label2.Visible = false;
من دارم یه برنامه مینویسم که باید هر ماه یکسری مقادیر رو که توسط فایل CSV گرفته میشه در برنامه وارد کنم . برای این کار دو نوع کد نوشتم و زمان هردو بسیار زیاد بود (برای 100000 رکورد حدود 5دقیقه و 20 ثانیه زمان) با توجه به اینکه فایل های ورودی حدودا بالای 10 میلیون رکورد دارن(و حدود 60 ستون) این نوع ورود اطلاعات خیلی کند و زمان بر خواهد بود . آیا روش دیگه ای هست که بشه اطلاعات رو با زمان کمتری وارد SQL کرد ؟ البته نه از خود SQL و حتما توسط برنامه این کار انجام بشه .
با تشکر
string line;
int i = 0;
using (System.IO.StreamReader sr = new System.IO.StreamReader(File_name))
{
while (!sr.EndOfStream)
{
line = sr.ReadLine();
if (i == 0)
{ i++; }
else
{
string[] tokens = line.Split(',');
a = DataSet.tashilat.NewRow();
a["IDTASHILAT"] = tokens[0].Replace('"', ' ').Trim();
a["BRNCH_COD"] = tokens[1].Replace('"', ' ').Trim();
a["LOAN_MINOR_TYPE"] = tokens[2].Replace('"', ' ').Trim();
.
.
.
DataSet.tashilat.Rows.Add(a);
i++;
}
}
tashilat TableAdapter.Update(DataSet.tashilat);
sr.Close();
MessageBox.Show("عملیات با موفقیت به پایان رسید /n تعداد '" + "" + "'رکورد ثبت گردید", "ثبت دیتا", MessageBoxButtons.OK, MessageBoxIcon.Information);
progressBar1.Visible = false;
label2.Visible = false;