2016-04-06 3 views
0

以下のコードはコンパイルされません。PDMが宣言されていないというエラーメッセージが表示されます。私はvb.netからSQL Serverストアドプロシージャを呼び出そうとしていますが、私が見つけた同様の例と一致するコードがあります。 PDMの部分が私のために機能しないのはなぜですか?"PDM"がSqlClient.SqlDataReaderのクラスとして宣言されていません

Public Function ReturnPointSource(ByVal PlantName) 

    Dim TempList = New ArrayList 

    Dim sqlDR As SqlClient.SqlDataReader = PDM.Data.SqlHelper.ExecuteReader(GLOBALS.ConnectionString, "sp_readLocation") 

    If sqlDR.HasRows Then 
     While sqlDR.Read() 
      Dim Loc As New Location 
      Loc.strFID = sqlDR(0) 
      Loc.strFeature = sqlDR(1).ToString 
      Loc.intPlantNo = sqlDR(2).ToString 
      Loc.strPlantName = sqlDR(3).ToString 
      Loc.strMunicipality = sqlDR(4).ToString 
      Loc.strRegion = sqlDR(5).ToString 
      Loc.strOperator = sqlDR(6).ToString 
      Loc.strDistrict = sqlDR(7).ToString 
      Loc.strWatercourse = sqlDR(8).ToString 
      Loc.dblCapacity = sqlDR(9).ToString 
      Loc.dblPopulation = sqlDR(10).ToString 
      Loc.strOwnership = sqlDR(11).ToString 
      Loc.strOwnerClass = sqlDR(12).ToString 
      Loc.strCofNum = sqlDR(13).ToString 
      Loc.strComments = sqlDR(14).ToString 
      Loc.dblLatitude = sqlDR(15).ToString 
      Loc.dblLongitude = sqlDR(16).ToString 
      Loc.strSource_Point = sqlDR(17).ToString 
      Loc.intSeverity = sqlDR(18).ToString 
      Loc.dblSafe_buffer_distance_m = sqlDR(19).ToString 
      TempList.Add(Loc) 
     End While 
    End If 

    Return TempList 

End Function 
+0

サイドノート:**あなたのストアドプロシージャのプレフィックス 'sp_'を使用しないでください**。マイクロソフトは、[*ストアドプロシージャの名前付け*を参照してください](http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx)、およびあなたはいつか名前衝突のリスクを将来実行します。 [ストアドプロシージャのパフォーマンスにも悪い](http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix)単に 'sp_'を避け、他の何かを接頭辞として使うのが最善です - 接頭辞はまったくありません! –

答えて

0

あなたは直接の例から、その後PDMは、彼らが自分自身を定義したものになるだろうことを撮影した場合。これは、.NET Frameworkの一部ではありません。私はPDMが著者であり、SqlHelperがそのPDM.Data名前空間のクラスであると推測しています。

データリーダーを取得する場合は、SqlCommandを作成し、ExecuteReaderを呼び出します。それはPDM.Data.SqlHelperが内部的にやっていることです。

関連する問題