2011-03-23 38 views
0

我想從我的SQL Server中逐行檢索數據並將它們加載到我各自的文本框中,我正在執行下面的代碼,但它當然不能用作對於每個循環將加載每個單獨的文本框與每個檢索到的數據,跑出想法。欣賞有人能在這裏給我一個提升。謝謝。從SQL Server逐行加載數據到文本框

Private Sub retrieve_Data() 
     Dim con As New SqlConnection 
     Dim cmd As New SqlCommand 

     Try 
      con.ConnectionString = "Data Source=HPEnvy-HP; Initial Catalog=Cinema; User Id=<id>; Password=<password>;" 
      con.Open() 
      cmd.Connection = con 

      cmd.CommandText = "SELECT [movie_ID], [movie_Title] FROM [Movie_Table] ORDER BY [MOVIE_ID] " 

      Dim lrd As SqlDataReader = cmd.ExecuteReader() 

      While lrd.Read() 

       Dim reader As String = lrd(1).ToString 
       Dim arrLoad As New ArrayList 


       arrLoad.Add(lrd(1).ToString) 
       For i = 0 To arrLoad.Count - 1 
        For Each cCtrl As Control In Panel1.Controls 
         If TypeOf cCtrl Is TextBox Then 
          Dim txtBox As New TextBox 
          txtBox = cCtrl 
          txtBox.Text = arrLoad.Item(i) 
         End If 
        Next 
       Next 
    End While 

     Catch ex As Exception 
      MessageBox.Show("Error while retrieving records on table..." & ex.Message, "Load Records") 
     Finally 
      con.Close() 
     End Try 
    End Sub 
+0

因此,對於每個lrd.read,你想要在一個文本框中的數據? – Matt 2011-03-23 09:16:00

+0

目前您的代碼會從數據中獲取第一條記錄,然後將其寫入每個可找到的文本框中。然後它從數據中獲取第二條記錄,並將其覆蓋到它可以找到的每個文本框中。我猜這是完全錯誤的,但我不確定你想要達到什麼目的? – MatBailie 2011-03-23 09:19:18

+3

如果你有一組數據**從SQL Server返回 - 你應該使用像grid,listview或repeater這樣的東西來顯示多行數據。對於這種情況,一組文本框似乎是一個非常糟糕的選擇。 – 2011-03-23 10:12:36

回答

-1

你只是「新」的文本框, 你沒有你的文本框添加到您的形式。 你應該添加一些這樣的代碼: this.Controls.Add(textbox); 或 this.Panel1.Controls.Add(textbox);