vb.net. كيف يمكنني ربط DataSet To DataRepeater؟
-
19-09-2019 - |
سؤال
أنا أبحث عن مثال 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()