سؤال

أنا أبحث عن مثال VB.NET على كيفية ربط مجموعة بيانات / DataTable إلى مكرر البيانات ولديها عناصر البيانات المنتصلة إلى أعمدة DataSet / DataTable؟ شكرا

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

المحلول

في البداية اعتقدت أنك تريد مكرر ويب، ولكن من تعليقاتك أدركت أنك تعني Microsoft.VisualBasic.PowerPacks.Datarepeater.

أحتاج إلى مزيد من المعلومات منك لإعطاء رمز نموذج مفيد (انظر أدناه).

الخطوات الأساسية لاستخدام DataRepeater هي:
1) تثبيت حزم الطاقة Visual Basic 3 وصلة
2) افتح مشروع VB.NET WinForms واسحب DataRepeater إلى النموذج الخاص بك
3) إضافة مجموعة بيانات جديدة إلى مشروعك عبر إضافة> قائمة البند الجديدة
4) في نافذة التصميم، قم بإعداد الأعمدة حسب الرغبة
5) افتح نافذة مصادر البيانات من البيانات -> قائمة ShowDatasources
6) مع النموذج الخاص بك في وضع التصميم، انتقل إلى DataSet في نافذة مصادر البيانات واستخدام المربع المنسدل بجوار اسم الجدول لتحديد "التفاصيل"
7) اسحب الجدول إلى قسم أعلى من عنصر التحكم DataRepeater (على النموذج الخاص بك). يجب الآن إدراج حقول الجدول على DataRepeater الخاص بك. يمكنك نقلها حولها.
8) في وقت التشغيل، يمكنك تحميل Datset وسيشكل DataRepeater تلقائيا تغييرات البيانات. لا .databind مطلوب
السابق.

me.DataSet1.Tables(0).Columns.Add(New String() {"John", "Doe", "Accountant"}  

أو

myDataAdapter.Fill(me.DataSet1.Tables(0)) 

هل تعثرت على أي من هذه الخطوات؟


يحرر:

مما رأيته، يبدو أنه يبدو أن DataRepate من المفترض أن تستخدم في المواقف التي أضفتها / خريطة DataTable إلى DataRepeater في وقت التصميم. ثم كل ما عليك فعله هو ملء DataTable في وقت التشغيل ويبين DataReader البيانات تلقائيا.

إذا كنت ترغب حقا في إضافة الجدول / الضوابط إلى DataReper في وقت التشغيل، فإليك مثال مشفرة لك. يفترض نموذج اسمه Form3 باستخدام DataRepeater المسمى DataRepeater1 وزر مسمى Button1 ...

Public Class Form3

    ''Set up demo DataSet/DataTable
    Const FRUIT_COL As String = "Fruit"
    Const COLOR_COL As String = "Color"
    MyDataSet = New DataSet
    MyDataSet.Tables.Add("MyTable")
    With MyDataSet.Tables(0)
        .Columns.Add(FRUIT_COL, GetType(System.String))
        .Columns.Add(COLOR_COL, GetType(System.String))
    End With

    ''Populate the DataTable with sample data. You would be loading from SQL
    With MyDataSet.Tables(0)
        .Rows.Add(New String() {"Apple", "Red"})
        .Rows.Add(New String() {"Orange", "Orange"})
        .Rows.Add(New String() {"Banana", "Yellow"})
    End With

    ''These objects would normally be created automatically if you added DataTable to DataRepeater at design-time
    FruitLabel = New Label
    FruitTextBox = New TextBox
    ColorLabel = New Label
    ColorTextBox = New TextBox
    With FruitLabel
        .AutoSize = True
        .Location = New Point(10, 20)
        .Name = "FruitLabel"
        .Text = FRUIT_COL
    End With
    With ColorLabel
        .AutoSize = True
        .Location = New Point(10, 60)
        .Name = "FruitLabel"
        .Text = FRUIT_COL
    End With
    With FruitTextBox
        .Location = New Point(50, 20)
        .Size = New Size(60, 15)
        .DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.MyDataSet.Tables(0), FRUIT_COL, True))
    End With
    With ColorTextBox
        .Size = New Size(60, 15)
        .Location = New Point(50, 60)
        .DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.MyDataSet.Tables(0), COLOR_COL, True))
    End With

    ''Add the controls that will be displayed for each row in DataTable
    With DataRepeater1
        .ItemTemplate.Controls.Add(FruitLabel)
        .ItemTemplate.Controls.Add(FruitTextBox)
        .ItemTemplate.Controls.Add(ColorLabel)
        .ItemTemplate.Controls.Add(ColorTextBox)
    End With

    ''Run-time population of DataRepeater from your DataTable
    DataRepeater1.DataSource = MyDataSet
    DataRepeater1.DataMember = MyDataSet.Tables(0).TableName

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    'Example of how you can add additional rows with form elements
    With MyDataSet.Tables(0)
        .Rows.Add(New String() {"Grapes", "Green"})
    End With
End Sub
End Class

الآن بعد أن شاهدت الكود، آمل أن لا تستخدمها :)
أقترح عليك إما إعداد بنية DataSet الخاصة بك في وقت التصميم أو استخدام عنصر تحكم مختلف لعرض بياناتك.

إليك رابط يحتوي على الكثير من المعلومات حول الطريقة النموذجية لاستخدام DataRepeater:وصلة

التحرير النهائي

كان أختر المستخدم الأخير مشكلة حساسية الحالة. يجب الاستفادة من سلسلة "النص" في سطر التعليمات البرمجية التالي لتتناسب مع اسم خاصية عنصر التحكم. أوصي بإنشاء CONST ل "اختبار" لتجنب هذا الخطأ المطبعي.

[ControlName].DataBindings.Add(New System.Windows.Forms.Binding("Text", [DataTable], [Column Name], True))

نصائح أخرى

Dim data As DataSet
DataRepeater1.DataSource = data
DataRepeater1.DataBind()
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top