2010-09-13 12 views
0

Je ne sais pas exactement où je dois chercher. erreur est:colonne n'appartient pas à la table Table

Column 'pkJudge' does not belong to table Table. ' 
    at System.Data.DataRow.GetDataColumn(String columnName) 
    at System.Data.DataRow.set_Item(String columnName, Object value) 
    at ReadyCollect.CaseEntry.S_GetJudges(Int32 courtID) 
    at ReadyCollect.CaseEntry.S_GetExistCaseInfo() 
    at ReadyCollect.CaseEntry.CaseReminder_HoldCase() 
    at ReadyCollect.CaseEntry.btnSave_Click(Object sender, EventArgs e) 

Il se produit dans le fragment de code suivant. Des idées?

Private Sub S_GetJudges(ByVal courtID As Integer) 
    ' Load the list of judges ' 
    Dim JudgeSet As New DataSet 
    Dim dv As System.Data.DataView 
    Dim DAl As New DataAccessLayer 
    Dim pfkCourt As Integer = CourtDDL.SelectedValue 

    If ClientKey > 0 And pfkCourt > 0 Then 
     JudgeSet = DAl.GetJudgespkJudgesJudgeNamefkCourt(ClientKey, pfkCourt) 
     JudgeDataTable = JudgeSet.Tables(0) 
     Dim dr As System.Data.DataRow 
     dr = JudgeDataTable.NewRow() 
     dr("pkJudge") = "0" 
     dr("Judge Name") = "(Select a Judge)" 
     JudgeDataTable.Rows.Add(dr) 
     JudgeDDL.SelectedValue = 0 
     JudgeDDL.DataSource = JudgeDataTable.DefaultView 
     dv = JudgeDataTable.DefaultView 
     dv.Sort ="pkJudge ASC" 
     JudgeDDL.DataBind() 
    End If 
End Sub 

Et la méthode DATAACCESS qui est appelé dans le fragment de code est ci-dessous. Maintenant, JudgeDataTable est déclaré
Private JudgeDataTable As System.Data.DataTable en haut de la page.
Le repos est dans le fragment de code que j'ai posté ci-dessus.

'Retreives fields pkJudge and [Judge Name] from the table Judges where field fkCourt is equal to fkCourt ' 

Public Function GetJudgespkJudgesJudgeNamefkCourt(ByVal ClientKey As Integer, ByVal fkCourt As Integer) As DataSet 
    Dim db As Database = DatabaseFactory.CreateDatabase() 
    Dim sqlCommand As String = "USP_DISPLAYJUDGESPKJUDGEJUDGENAMEFKCOURT" 
    Dim dbCommand As DbCommand = db.GetStoredProcCommand(sqlCommand) 
    db.AddInParameter(dbCommand,"ClientKey", DbType.Int32, ClientKey) 
    db.AddInParameter(dbCommand,"fkCourt", DbType.Int32, fkCourt) 
    Return db.ExecuteDataSet(dbCommand) 
End Function 
+0

Pouvez-vous formater votre code en le plaçant entre les balises ? – Rahul

Répondre

0

Partial Class CaseEntry Inherits System.Web.UI.Page

 Private JudgeDataTable As System.Data.DataTable 
     Private Sub S_GetJudges(ByVal courtID As Integer) 

     ' Load the list of judges 
     JudgeDataTable = New System.Data.DataTable 
     Dim JudgeSet As New DataSet 
     Dim dv As System.Data.DataView 
     Dim DAl As New DataAccessLayer 
     Dim pfkCourt As Integer = CourtDDL.SelectedValue 
     If ClientKey > 0 And pfkCourt > 0 Then 
      JudgeSet = DAl.GetJudgespkJudgesJudgeNamefkCourt(ClientKey, pfkCourt) 
      JudgeDataTable = JudgeSet.Tables(0) 
      Dim dr As System.Data.DataRow 
      dr = JudgeDataTable.NewRow() 
      dr("pkJudge") = "0" 
      dr("Judge Name") = "(Select a Judge)" 
      JudgeDataTable.Rows.Add(dr) 
      JudgeDDL.SelectedValue = 0 
      JudgeDDL.DataSource = JudgeDataTable.DefaultView 
      dv = JudgeDataTable.DefaultView 
      dv.Sort = "pkJudge ASC" 
      JudgeDDL.DataBind() 
     End If 
    End Sub 

'Retreives fields pkJudge and [Judge Name] from the table Judges where field fkCourt is equal to fkCourt Public Function GetJudgespkJudgesJudgeNamefkCourt(ByVal ClientKey As Integer, ByVal fkCourt As Integer) As DataSet

Dim db As Database = DatabaseFactory.CreateDatabase() 
    Dim sqlCommand As String = "USP_DISPLAYJUDGESPKJUDGEJUDGENAMEFKCOURT" 
    Dim dbCommand As DbCommand = db.GetStoredProcCommand(sqlCommand) 

    db.AddInParameter(dbCommand, "ClientKey", DbType.Int32, ClientKey) 
    db.AddInParameter(dbCommand, "fkCourt", DbType.Int32, fkCourt) 

    Return db.ExecuteDataSet(dbCommand) 
End Function 

0

Qu'est-ce qui se passe si vous cassez après les trucs GetDataSet et regardez le datatable? Est-ce que la colonne est là? Sinon, essayez peut-être d'y accéder via l'index des colonnes.

+0

Si la colonne ne serait pas là du tout alors il devrait lancer une erreur chaque fois que le chargement de la page. Hmm cela arrive comme pour peu. Comment puis-je vérifier l'existence de la colonne. – sony

+0

Énumérer à travers la collection de colonnes sur la table. Cela devrait vous dire ce qu'il y a là-bas. – JoelHess

+0

J'ai essayé d'énumérer à travers la colonne Index, je vois la colonne existe. – sony

Questions connexes