2012-01-21 27 views
1

我有一些VB代碼像方法來執行存儲過程,並在C#

Dim data As DataTable = DataAccess.ExecuteDataSet("AuthenticateWebServiceClient" _ 
               , New SqlParameter("@ClientID", ClientId) _ 
               , New SqlParameter("@Password", Password) _ 
               , New SqlParameter("@WebServiceID", WebServiceID)).Tables(0) 

而與此功能

Public Shared Function ExecuteDataSet(ByVal storedProcName As String, ByVal ParamArray parameters As SqlParameter()) As DataSet 
     'Try 
     Dim command As SqlCommand = PrepareSPCommand(storedProcName, parameters) 
     Dim adapter As New SqlDataAdapter(command) 
     Dim ds As New DataSet 
     adapter.Fill(ds) 
     Return ds 
     'Catch ex As Exception 
     'ex.ToString() 
     'End Try 
    End Function 

一個數據訪問類返回的數據表當我試圖通過將其轉換爲C#轉換器我得到

private DataSet ExecuteDataSet(string storedProcName, SqlParameter[] parameters) 
{ 
    SqlCommand command = PrepareSPCommand(storedProcName, parameters); 
    SqlDataAdapter adapter = new SqlDataAdapter(command); 
    DataSet ds = new DataSet(); 
    adapter.Fill(ds); 
    return ds; 
} 

除PrepareSPCommand不被VS識別。有誰知道將此函數轉換爲C#的正確方法。

+0

我覺得DataAccess.ExecuteDataSet是在數據訪問應用程序塊的方法。 http://msdn.microsoft.com/en-us/library/ff649538.aspx – Nalaka526

+0

這是DataAccess自定義數據訪問層? – Malk

+0

更新了原始問題 – Josh

回答

1

這裏,

public SqlCommand PrepareSPCommand(string storedProcName, SqlParameter[] parameters, string connectionString){ 
    SqlCommand command = new SqlCommand(storedProcName,new SqlConnection(connectionString)); 
    command.CommandType=CommandType.StoredProcedure; 
    command.Parameters.AddRange(parameters); 

    return command; 
} 
0

當然。沒有什麼神祕的關於C#比VB.net

DataTable data = DataAccess.ExecuteDataSet("AuthenticateWebServiceClient", New SqlParameter("..."), etc).Tables[0];