2011-03-04 14 views
0

ハーズフォームコード:なぜこのVBコードは私には失敗ですか?

Imports TechSupportData 

Public Class frmOpenIncidents 

Private Sub frmOpenIncidents_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Dim incidentList As List(Of Incident) 
    Try 
     incidentList = IncidentDB.GetIncidents 
     If incidentList.Count > 0 Then 
      Dim incident As Incident 
      For i As Integer = 0 To incidentList.Count - 1 
       incident = incidentList(i) 
       lvIncidents.Items.Add(incident.ProductCode) 
       lvIncidents.Items(i).SubItems.Add(incident.DateOpened) 
       lvIncidents.Items(i).SubItems.Add(incident.CustomerID) 
       lvIncidents.Items(i).SubItems.Add(incident.TechID) 
       lvIncidents.Items(i).SubItems.Add(incident.Title) 
      Next 
     Else 
      MessageBox.Show("All Incidents are taken care of") 
      Me.Close() 
     End If 
    Catch ex As Exception 
     MessageBox.Show(ex.Message, ex.GetType.ToString) 
     Me.Close() 
    End Try 
End Sub 
End Class 

そして相続人クラスのでの作業:私は、Visual Studioから取得しています

Imports System.Data.SqlClient 

Public Class IncidentDB 
    Public Shared Function GetIncidents() As List(Of IncidentDB) 
     Dim incidentList As New List(Of IncidentDB) 
     Dim connection As SqlConnection = TechSupportDB.GetConnection 
     Dim selectStatement As String _ 
      = "SELECT CustomerID, ProductCode, TechID, DateOpened, Title" _ 
      & "FROM(Incidents)" _ 
      & "WHERE DateClosed IS NULL" 
     Dim selectCommand As New SqlCommand(selectStatement, connection) 
     Try 
      connection.Open() 
      Dim reader As SqlDataReader = selectCommand.ExecuteReader() 
      Dim incident As Incident 
      Do While reader.Read 
       incident = New Incident 
       incident.IncidentID = reader("IncidentID").ToString 
       incident.CustomerID = reader("CustomerID").ToString 
       incident.ProductCode = reader("ProductCode").ToString 
       incident.DateOpened = reader("DateOpened").ToString 
      Loop 
      reader.Close() 
     Catch ex As Exception 
      Throw ex 
     Finally 
      connection.Close() 
     End Try 
     Return incidentList 
    End Function 
End Class 

HERESにエラー:タイプの

エラー1つの値 ' System.Collections.Generic.List(Of TechSupportData.IncidentDB) 'を' System.Collections.Generic.List(Of TechSupportData.Incident) 'に変換することはできません。 C:コーディ\デスクトップ\学校\現在\ ITECH4269のVisual Basic \ Assignment2CodyStewart \ Assignment2CodySteawrt \ Assignment2CodySteawrt \ frmOpenIncidents.vbは8〜28 Assignment2CodySteawrt

どれ指導や提案をいただければ幸い\ \ユーザー、どうもありがとう。あなたはインシデントのリストとしてincidentListを定義したクラスfrmOpenIncidentsで

答えて

1

Dim incidentList As List(Of Incident) 

それを設定します。

incidentList = IncidentDB.GetIncidents 

しかしIncidentDB方法は、インシデントのリストを返すように定義されている*をDB *:

Public Shared Function GetIncidents() As List(Of IncidentDB) 

解決策はこれに最初の定義を変更することでしょうか?インシデントまたはIncidentDB - - とすべて同様のエラーを取り除くためにそれを一貫して使用

Dim incidentList As List(Of IncidentDB) 

あなたはクラスの名前を選択する必要があります。

+0

そのエラーを解決しました。ありがとうございました!今度はこの1つにつきました: エラータイプ「TechSupportData.IncidentDB」の値は「TechSupportData.Incident」に変換できません。 \t C:\ユーザーは、コーディ\デスクトップ\学校\ \現在\ ITECH4269のVisual Basic \ Assignment2CodyStewart \ Assignment2CodySteawrt \ Assignment2CodySteawrt \ frmOpenIncidents.vb Assignment2CodySteawrt –

+0

はラウンドの他の方法のように見える: '公共の共有機能GetIncidents(であるべき)リストとして(インシデントの)「私は疑わしい。 – Filburt

+0

@Filburt - 私には妥当な音。 –

関連する問題