نمایش نتایج 1 تا 12 از 12

نام تاپیک: ارسال n ردیف رکورد به جدول با استفاده از متد ExecuteNoneQuery

  1. #1
    کاربر دائمی آواتار Ehsan Rafsanjani
    تاریخ عضویت
    آبان 1384
    محل زندگی
    مشهد
    پست
    105

    ارسال n ردیف رکورد به جدول با استفاده از متد ExecuteNoneQuery

    یکی از روش های بهره وری مناسب از دیتابیس اینه که از روش هایی استفاده کنیم که لازم نباشه همه اطلاعات بازیابی بشه مثله ExecuteNoneQuery
    حالا من میخواستم بدونم روشی هست که بتونیم به طور همزمان n ردیف رکورد رو به یک جدول دیتابیس در یک مرحله با روش ExecuteNoneQuery اضافه کنیم
    اگه دوستان بتونن یه نمونه کد مثال بزنن خیلی ممنون می شم

  2. #2
    یه راه اینه که Insert Command رو تو کد بنویسی
    tnsert into table1 values(...);insert into table1 values(..);.....
    bad command ro ba Executenonquery اجرا کنی
    راه دیگه اینکه اگه از dataset استفاده میکنی اونو به عنوان یه xml بفرستی به database و بقیه کارها رو بسپاری به database

  3. #3
    البته اگه این n شما خیلی بزرگ بشه یه sql exception به نام timeout اتفاق میفته. بهتره timeout شی sqlcommand رو برای اینکار بیشتر کنید.

  4. #4
    کاربر دائمی آواتار mehdi58
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    Utopia
    پست
    450
    آقا میشه یه کم در مورد روش XML توضیح بیشتری بدین یا اگه ممکنه یه نمونه کد واسه فهمیدن بیشتر مطلب بگذارین.

  5. #5
    نقل قول نوشته شده توسط Ehsan Rafsanjani
    حالا من میخواستم بدونم روشی هست که بتونیم به طور همزمان n ردیف رکورد رو به یک جدول دیتابیس در یک مرحله با روش ExecuteNoneQuery اضافه کنیم
    این مشکل من هم هست من میخواهم از storedprodure استفاده کنم
    برای اینکار دستوراتم را به ازای n ردیف رکورد در یک حلقه گذاشتم اما با توجه به اینکه بعد از هر بار اجرا ExecuteNoneQuery و connecton میبایست close شود فکر کنم سرعت بسیار پایین بییاید

  6. #6
    نقل قول نوشته شده توسط hpx
    یه راه اینه که Insert Command رو تو کد بنویسی
    tnsert into table1 values(...);insert into table1 values(..);.....
    bad command ro ba Executenonquery اجرا کنی
    database
    آقای hpx لطفا اگه برای این صحبتهاتون نمونه کد دارین بذارین اینطوری خیلی مبهمه.
    قبلا ممنونم

  7. #7
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1385
    پست
    69
    سلام
    شما می توانید خروجی یک Select را به عنوان ورودی دستور insert استفاده کنید

  8. #8
    ببخشید من بازم متوجه نشدم لطفا اگه کسی می خواد جواب بده کد بنویسه.
    ممنون می شم.

  9. #9
    کاربر دائمی آواتار mehdi58
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    Utopia
    پست
    450
    کسی لطف نمی کنه بیشتر توضیح بده ( با کد )

  10. #10
    کاربر دائمی آواتار mehdi58
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    Utopia
    پست
    450
    این تاپیک چند وقت پیش مطرح شد اما ...
    آیا کسی می تونه در این زمینه مقاله ، کد یا توضیح بیشتری بده .
    ممنون

  11. #11

    Thumbs up


    public static void InsertDataList(DataSet ds, string tableName)
    {
    SqlConnection conn = new SqlConnection(AppConfig.sqlConnection);
    conn.Open();
    try
    {


    string strSQL1 = "";
    bool isFirstColumn = true;
    foreach (DataColumn dc in ds.Tables[tableName].Columns)
    {
    string columnName = dc.ColumnName;
    if (isFirstColumn)
    {
    strSQL1 += columnName;
    isFirstColumn = false;
    }
    else
    strSQL1 += "," + columnName;
    }
    foreach (DataRow dr in ds.Tables[tableName].Rows)
    {
    string strSQL2 = "";
    isFirstColumn = true;
    foreach (DataColumn dc in ds.Tables[tableName].Columns)
    {
    string columnValue = "NULL";
    if (!dr.IsNull(dc.ColumnName))
    columnValue = GetValue(dc, dr[dc]).ToString();
    if (isFirstColumn)
    {
    strSQL2 = columnValue;
    isFirstColumn = false;
    }
    else
    strSQL2 += "," + columnValue;
    }
    string strSQL = "Insert into " + tableName + "(" + strSQL1 + ") values (" + strSQL2 + ")";
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = conn;
    cmd.CommandText = strSQL;
    cmd.CommandType = CommandType.Text;
    cmd.ExecuteNonQuery();
    }
    }
    catch (SqlException exp)
    {
    throw exp;
    }
    catch (Exception exp)
    {
    throw exp;
    }
    finally
    {
    conn.Close();
    }


    }

  12. #12
    کاربر دائمی آواتار mehdi58
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    Utopia
    پست
    450
    دستت درد نکنه از اینکه کد رو گذاشتی

تاپیک های مشابه

  1. ExecuteNoneQuery
    نوشته شده توسط solmaz_zm در بخش VB.NET
    پاسخ: 11
    آخرین پست: سه شنبه 27 شهریور 1386, 09:27 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •