• 0

كيف أقوم إدخال جميع قيم مصفوفة في جدول على SQL باستعمال#C؟

أريد إدخال جميع قيم مصفوفة في جدول Sql باستعمال #C، لكن أواجهه مشكل في فتح وغلق الإتصال بقاعدة البيانات عند كل عملية إدخال، فهل من طريقة للقيام بالعملية أسهل وأنجع؟

هذا مثال للكود :

public void InsertDataToDb()
{
    string connectionString = ConfigurationManager.ConnectionStrings["connection"].ConnectionString;
    var records = GetRecords();

    using (SqlConnection conn = new SqlConnection(connectionString))
    {
        SqlCommand cmd =
            new SqlCommand(
                "INSERT INTO TableName (param1, param2, param3) VALUES (@param1, @param2, @param3)");
        cmd.CommandType = CommandType.Text;
        cmd.Connection = conn;
        foreach (var item in records)
        {
            cmd.Parameters.AddWithValue("@param1", item.param1);
            cmd.Parameters.AddWithValue("@param2", item.param2);
            cmd.Parameters.AddWithValue("@param3", item.param3);

            conn.Open();
            cmd.ExecuteNonQuery();
            cmd.Parameters.Clear();
            conn.Close();
        }
    }
}

هل من حل؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

الحل:

  public void InsertDataToDb()
    {
        string connectionString = ConfigurationManager.ConnectionStrings["connection"].
            ConnectionString;
        var records = GetRecords();

        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            conn.Open();

            SqlCommand cmd =
                new SqlCommand(
                    "INSERT INTO TableName (param1, param2, param3) " +
                    " VALUES (@param1, @param2, @param3)");
            cmd.CommandType = CommandType.Text;
            cmd.Connection = conn;
            cmd.Parameters.Add("@param1", DbType.String);
            cmd.Parameters.Add("@param2", DbType.String);
            cmd.Parameters.Add("@param3", DbType.String);

            foreach (var item in records)
            {
                cmd.Parameters[0].Value = item.param1;
                cmd.Parameters[1].Value = item.param2;
                cmd.Parameters[2].Value = item.param3;

                cmd.ExecuteNonQuery();
            }

            conn.Close();
        }
    }

ملاحظات:

  • لاحظ أن المتغير cmd يقبل Parameters يحدد برقم يبدأ من 0.
  • loop foreach تمرر بالدور على مختلف قيم المصفوفة، وبداخل هذه الدالة -foreach- ينفذ أمر cmd.ExecteNonQuery لإدخال قيم كل صف من المصفوف في الجدول اتباعاً، وهذا أمرٌ مهم، حيث يتوجب عليك تصفح وقراءة جميع قيم المصفوفة، مع إدخال القيم في الجدول على Sql.
  • بعد انتهاء الدالة Foreach نغلق الاتصال بقاعدة البيانات.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0
هل تستطيع عمل ملف .bat لأتصال برودباند؟ أو أمر cmd؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن