تعبئة البيانات من استعلامات متعددة في نفس مصدر البيانات
الكاتب:Eve Cole
وقت التحديث:2009-07-01 16:14:59
يتم استخدام DataSet غالبًا كمصدر بيانات لعنصر التحكم في كتابة التعليمات البرمجية، وعادةً ما يمكن ربط عنصر التحكم بمصدر بيانات واحد فقط. إذا كنت تريد ربط نتائج استعلامات متعددة بقاعدة البيانات بعنصر تحكم، فيجب عليك تعبئة نتائج استعلامات متعددة في نفس مصدر البيانات. بالطبع، يمكن أيضًا تنفيذ هذه الوظيفة عن طريق رسم الجداول ديناميكيًا، لكنني أشعر أن المعالجة الديناميكية للجداول مزعجة للغاية. تم إجراء الاختبار التالي لهذا الغرض وكان الاختبار ناجحًا وسأشاركه الآن.
المبدأ: قم بملء نتائج استعلامات متعددة في نفس الجدول من نفس مجموعة البيانات، ولكن عند التعبئة مرتين، يجب أن تكون الحقول بنفس الاسم المستعار، وإلا ستظهر صفوف فارغة غير ضرورية.
الرمز هو كما يلي:
1 قاعدة بيانات فارغة خاصة ()
2 {
3 سلسلة sql1 = "اختر xqid كـ yhm، xqmc كـ zsxm من xt_xq"؛//
4 سلسلة sql2 = "اختر xt_zdb_style كـ yhm، الوصف كـ zsxm من xt_zdb"؛// يستخدم sql1 وsql2 نفس الأسماء المستعارة للحقل yhm وzsxm
5 باستخدام (OracleConnection Connection = New OracleConnection("Data Source=abeen;User Id=system;Password=abeen;"))
6 {
7 DataSet ds = new DataSet();
8 حاول
9 {
10 اتصال.فتح ()؛
11 أمر OracleDataAdapter = OracleDataAdapter الجديد(sql2,connection);
12 أمر.Fill(ds,0,5,"TableName");// املأ البيانات في TableName لأول مرة
13 أمر = OracleDataAdapter الجديد(sql1,connection);
14 Command.Fill(ds,"TableName");// املأ البيانات في TableName للمرة الثانية
15
16 this.DataGrid1.DataSource=ds;// نتائج الحشوتين موجودة في اسم الجدول ds
17 this.DataGrid1.DataBind();
18}
19 صيد (System.Data.OracleClient.OracleException على سبيل المثال)
20 {
21 رمي استثناء جديد (ex.Message)؛
إثنان وعشرون }
ثلاثة وعشرين
أربعة وعشرون }
25}
http://www.cnblogs.com/abeen/archive/2006/11/21/567893.html