내 고용주의 요청에 따라 Visual Basic
을 배우기 시작했고, 저를 괴롭히는 학습 프로젝트의 한 지점에 도달했습니다.Visual Basic 2015 : SQL 연결에서 ListView 채우기
내 SQL 데이터베이스의 특정 테이블의 데이터를 사용하여 ListView를 채울하려고 해요,하지만 난 상관없이 나는 그것을 해결하기 위해 시도하는 방법 같은 오류가 없습니다 계속 :
여기Argument Out of Range Exception - Invalid Argument=Value of '1' is not valid for 'index'.
가 있어요 예외 코드를 생성하는 것 :
Private Sub MasterListSeries_Load(sender As Object, e As EventArgs) Handles MyBase.Load
lvMasterListSeries.Columns.Add("Unique ID", 75, HorizontalAlignment.Center)
lvMasterListSeries.Columns.Add("Working Title", 100, HorizontalAlignment.Center)
lvMasterListSeries.Columns.Add("Book Count", 75, HorizontalAlignment.Center)
lvMasterListSeries.Columns.Add("Genre", 75, HorizontalAlignment.Center)
lvMasterListSeries.Columns.Add("Published Title", 100, HorizontalAlignment.Center)
lvMasterListSeries.Columns.Add("Date Started", 85, HorizontalAlignment.Center)
lvMasterListSeries.Columns.Add("Date Completed", 85, HorizontalAlignment.Center)
Using myConnection As New SqlConnection(dbConnection)
myConnection.Open()
Dim Count As Integer
Dim i As Integer = 0
Using CountRows As New SqlCommand("SELECT Count(uniqueID) FROM tblSeries", myConnection)
Count = Convert.ToDecimal(CountRows.ExecuteScalar)
End Using
Using querySeries As New SqlCommand("SELECT uniqueID, workingtitle, forecastedbookcount, genre, publishedtitle, datestarted, datecompleted FROM tblSeries", myConnection)
Dim qsResult As SqlDataReader = querySeries.ExecuteReader()
While qsResult.Read
i = Convert.ToDecimal(qsResult("uniqueID"))
lvMasterListSeries.Items.Add(New ListViewItem(Convert.ToString(qsResult("uniqueID"))))
lvMasterListSeries.Items(i).SubItems(1).Text = Convert.ToString(qsResult("workingtitle"))
lvMasterListSeries.Items(i).SubItems(2).Text = Convert.ToString(qsResult("forecastedbookcount"))
lvMasterListSeries.Items(i).SubItems(3).Text = Convert.ToString(qsResult("genre"))
lvMasterListSeries.Items(i).SubItems(4).Text = Convert.ToString(qsResult("publishedtitle"))
lvMasterListSeries.Items(i).SubItems(5).Text = Convert.ToString(qsResult("datestarted"))
lvMasterListSeries.Items(i).SubItems(6).Text = Convert.ToString(qsResult("datecompleted"))
End While
End Using
End Using
End Sub
예외는 While qsResult.Read
시퀀스의 세번째 라인에서 일어난다.
Stack Overflow에서 두 개의 스레드, Dream_In_Code에서 두 개의 스레드 및 Code Guru에서 두 개의 스레드를 읽었습니다. 아무 소용이 없습니다.
MSDN의 커뮤니티 포럼에서 질문을 찾았지만 데이터 집합을 사용하는 것처럼 보입니다. 반면 활성 연결을 통해 ADO.NET을 배우려고하는데 ... 변환 할 수 없었습니다. 나를 위해 사용할 수있는 것으로 여기
의 Visual Studio 디버그 윈도우의 화면 캡처입니다 :ListView
여기에 표시된 SQL 쿼리의 결과 같은 것을 보일 것입니다 (인구에 따라) :
도움을 주셔서 감사 드리며 시간을내어 읽어 주셔서 감사합니다.
그 시점에서 존재하지 않는'SubItems (1)'을 사용하려고합니다. 그 오류가 발생합니다. 나는이 컨트롤에 익숙하지 않지만 적절한 someNewSubItem 객체 (Text 속성을 이미 포함하고 있을지도 모른다)를 생성 한 후에'.SubItems.Add (someNewSubItem)'을 할 필요가있을 것이다. –