vb.net Datarepeater,Dataadapter,Dataset,SQL如何逐行分解并插入转发器

时间:2013-04-30 15:51:46

标签: arrays vb.net fill datarepeater

编辑代码:之前的代码很好但不能更改textbox.text属性或显示它们为此循环添加的每个控件

感谢任何帮助

一些子

    Dim EqLst As String = ""

    Try

        Dim con As New SqlConnection
        Dim myConString As String = getSQLString()
        Dim objcommand As SqlCommand = New SqlCommand

        With objcommand
            .Connection = con
            Dim cmdText As String = "SELECT EquipList from SiteAuditor where client='" & GLClient & "' and market='" & GLMarket & "' and project='" & GLProject & "'"
            .CommandText = cmdText
        End With
        con.ConnectionString = myConString
        con.Open()

        Using readerObj As SqlClient.SqlDataReader = objcommand.ExecuteReader
            'This will loop through all returned records 
            While readerObj.Read

                EqLst = readerObj("EquipList").ToString

                Exit While
            End While
        End Using

        con.Close()

        Dim li As String() = EqLst.Split(",")
        Dim data As New List(Of dataitem)
        For Each name As String In li
            'Form1.DataRepeater1.AddNew()
            data.Add(New dataitem(name))
            Form1.DataRepeater1.CurrentItem.Controls("txtName").Text = name
        Next

        Form1.DataRepeater1.DataSource = data

我想这里是我需要了解如何在datarpeater控件中添加/更改我的textox名称,任何人都有我的解决方案?

        'For Each name As String In li
        '    Form1.DataRepeater1.CurrentItemIndex(i).text = name
        'Next


    Catch ex As Exception

        Dim thiserror As String = "Error grabDataRepeaterData, " & vbCrLf _
                    & "Email Notifying CLS-Software Developemnt about this error was sent."
        Dim additionalinfo As String = UserLogin & vbCrLf & UserLogin.Replace("CLSGROUP\", "") & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & ex.ToString
        MessageBox.Show(thiserror)
        ErrorEmails(thiserror, additionalinfo)

    End Try


    Return Nothing

结束子

Public Class dataitem
    Public Sub New(text As String)
        Me.text = text
    End Sub
    Public Property text As String
End Class

2 个答案:

答案 0 :(得分:2)

DataRepeater必须为AddNew设置其DataSource属性才能工作。它被设计为数据绑定。

您可以将dataSource设置为对象列表。然后,无论何时添加到列表,dataRepeater都会自动显示新项目。

示例:

Public Class dataitem
 Public Sub New(text As String)
  Me.text = text
 End Sub
 Public Property text As String
End Class

Public Class Form1
 Public Sub New()
  InitializeComponent()
  Dim data As New List(Of dataitem)
  data.Add(New dataitem("test1"))
  data.Add(New dataitem("test2"))
  DataRepeater1.DataSource = data
 End Sub
End Class

答案 1 :(得分:0)

您没有为每个循环声明数据类型。在'name'之后你需要'as string'

For Each name As String In li
        Form1.DataRepeater1.AddNew()
        Form1.DataRepeater1.CurrentItem.Controls("txtName").Text = name
Next