2016-04-06 16 views
0

'un bir sınıfı olarak" bildirilmemiş "şeklindedir. Aşağıdaki kodum derlenmez, hata iletisi PDM bildirilmez. Bir SQL Server saklı yordamını vb.net'den çağırmaya çalışıyorum ve bulduğum kod, bulduğum benzer örneklerle eşleşiyor gibi görünüyor. Neden PDM parçası benim için çalışmıyor?"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

Yan not: saklı yordamlarınız için ** sp_' öneki kullanmamalısınız **. Microsoft [kendi kullanımı için öneki ayırmıştır (bkz. * Kayıtlı Yordamları İsme *)] (http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx) ve Gelecekte bazen bir isim çatışması riskiyle karşı karşıyasınız. [Ayrıca saklı yordam performansınız için de kötüdür] (http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix). Sadece 'sp_''den kaçınmak ve önek olarak başka bir şey kullanmak ya da hiç bir önek kullanmamak en iyisidir! –

cevap

0

doğrudan bir örnekten sonra PDM kendilerini tanımladığınız şey olacağını aldıysanız. .NET Framework'ün bir parçası olan bir şey değil. Ben PDM yazar ve SqlHelper onların PDM.Data ad alanında bir sınıf olduğunu tahmin ediyorum.

Bir veri okuyucusu almak istiyorsanız, bir SqlCommand oluşturun ve ardından ExecuteReader numaralı telefonu arayın. Bu, PDM.Data.SqlHelper'un dahili olarak yapacağı şeydir.