2013-04-30 1 views
1

편집 된 코드 : 이전의 코드는 훌륭하지만 textbox.text 속성을 변경하거나 추가 한 각 컨트롤을 표시 할 수는 없습니다. 이 루프vb.net Datarepeater, DataAdapter, Dataset, SQL 줄 바꿈 및 리피터에 삽입하는 방법

에 의해 어떤 도움

을 감사합니다 몇 가지 내가 어떤 해결책을 가지고있는 datarpeater 제어 누군가 내에서 내 textox 이름을 추가/변경하는 방법을 찾을 수 필요로하는 곳에 내가 여기 추측

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 

는 하위 나를 위해서?

 '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

후 '문자열'이 필요합니다. 그것은 데이터 바인딩되도록 설계되었습니다.

데이터 소스를 개체 목록으로 설정할 수 있습니다. 그런 다음 목록에 추가 할 때마다 dataRepeater는 자동으로 새 항목을 표시합니다.

예 : ". 개체의 인스턴스로 설정되지 개체 참조"난 당신이 그 정지 솔루션 메신저 점점 * 아니었다 것을 생각할 수 c는 방법

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 
+0

죄송합니다. 어떤 코드 예제라도 제공해 주시겠습니까? - 대단히 감사합니다. – Pakk

+0

간단히 말해서, 내가 요청한 것처럼 추가했습니다. 이제 필드에 텍스트 속성을 설정할 수없는 이유를 묻지 않거나 거기에 추가 된 후 루프? – Pakk

+0

나는 비슷한 문제를 겪고있었습니다. 코드를 최소한으로 줄였습니다. 텍스트 필드를 바인딩하려면 BindingSource 컨트롤을 폼에 추가해야합니다. 데이터 소스를 설정하고, 프로젝트 데이터 소스를 추가하고, 데이터 항목 클래스를 선택하십시오. 그런 다음 repeater의 데이터 소스를 bindingSource로 설정하십시오. 그런 다음 텍스트 상자 속성으로 이동하여 텍스트 필드를 텍스트 바인딩으로 선택할 수 있어야합니다. 도움이되는 희망. –

0

귀하는 각 루프에 대한 당신의 데이터 유형을 선언하지 말 서브. 당신은 '이름'은입니다 DataRepeater는 AddNew가 작동하려면 해당 데이터 소스 속성 집합을 가지고있다

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

죄송하지만 * 오류입니다. 답장을 보내 주셔서 감사합니다. – Pakk