ما هو وسيلة جيدة للتعامل مع البيانات التي تم إرجاعها من MySQL و C #؟

StackOverflow https://stackoverflow.com/questions/1235792

  •  22-07-2019
  •  | 
  •  

سؤال

ومجرد أسئلة سريعة، لأن معظم بلوق والدروس وجدت حوالي العناصر الأساسية جدا من MySQL و C #.

وأنا باستخدام الخلية ADO موصل.

ولدي إعداد كل شيء، وأنا يمكن استرداد البيانات من الجدول. ولكن أريد أن إنشاء الأسلوب الذي يبسط الأمور بالنسبة لي. حتى أتمكن من تعيين سلسلة الاستعلام (سواء في الأسلوب أو الكائن) واستدعاء دالة وانها ستعود نوعا من كائن البيانات.

// For each row
while(reader.Read())
{
    // For each column
    for(int i = 0; i < reader.FieldCount; i++)
    {
        Console.Write(reader.GetName(i).ToString());
        Console.Write(reader.GetValue(i).ToString() + ",");
    }
    Console.Write("\n");
}

وهذا ما لدي الآن. أنا يمكن أن يكون مجرد العودة للقارئ. ولكن هذا يتطلب لحلقة في حلقة بينما في كل مرة كنت تريد أن يتكرر خلال بعض البيانات.

ويتساءل إذا كان هناك كائن بيانات أفضل I يمكن أن تملأ والعودة؟ أحب أيضا روابط لمواد القراءة في هذا الشأن.

وبالمناسبة أنا أتعلم C # لذلك قد يكون هناك أشياء أنا لست 100٪ واضح على.

هل كانت مفيدة؟

المحلول

ويجب عدم تمرير البيانات قارئ حولها. لديك للحفاظ على اتصال قاعدة البيانات فتح طالما كنت تقرأ من القارئ البيانات، لذلك يجب عليك قراءة البيانات التي تريدها إلى جمع بعض بحيث يمكنك إغلاق اتصال قاعدة البيانات في أقرب وقت ممكن.

ويمكنك قراءة البيانات في DataSet أو DataTable، أو يمكنك إنشاء فصول للالأشياء الخاصة بك وملء مباشرة. مثال:

List<SomeCustomObject> data = new List<SomeCustomObject>();
while(reader.Read()) {
   int id = reader.GetInt32(0);
   string name = reader.GetString(1);
   data.Add(new SomeCustomObject(id, name);
}

نصائح أخرى

لماذا لا مجرد استخدام مزود ADO.NET عن الخلية ، والعودة معيار ADO.NET مجموعة البيانات ؟

وهذا له ميزة حفظ التعليمات البرمجية التي تتعامل مع المحمولة البيانات إلى الخلفيات DB أخرى.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top