我正在将vb.net代码转换为c#。将类型化数据集从实体类传递到数据访问中可用的无类型数据集参数时,我在C#中遇到错误但是vb.net我没有收到错误。
在INTERFACE中声明了一个函数,我正在一个类中实现。通过Google,我找到了如何在INTERFACE中声明一个函数,但我不知道如何在类中实现。
从函数我需要count和数据表,因为我在函数中使用了ref。如何实现下面提到的功能?
我想实现下面提到的功能。
int ExecuteDataAdapterDataTableWithParams<T>(IDbCommand podbCommand, ref T pdtDataTable) where T : DataTable;
将下面提到的代码从VB.NET CODE转换为C#
Function ExecuteDataAdapterDataTableWithParams(ByVal podbCommand As IDbCommand, _
ByRef pdtDataTable As DataTable) As Integer
Public Function ExecuteDataAdapterDataTableWithParams(ByVal podbCommand As IDbCommand, _
ByRef pdtDT As DataTable) _
As Integer Implements diNonTransactional.ExecuteDataAdapterDataTableWithParams
Dim ldaDataAdapter As IDataAdapter
Dim lodbTrans As IDbTransaction
Dim liFetchedRows As Integer
lodbTrans = EstablishConnection()
'EstablishConnection()
Try
podbCommand.Connection = coConnection
podbCommand.Transaction = lodbTrans
ldaDataAdapter = GetDataAdapter(podbCommand)
ldaDataAdapter.TableMappings.Add("Table", pdtDT.TableName)
liFetchedRows = ldaDataAdapter.Fill(pdtDT.DataSet)
Catch ex As Exception
Throw ex
Finally
CloseConnection(lodbTrans)
'CloseConnection()
End Try
Return liFetchedRows
End Function
将代码从VB.NET转换为C#,但是下面提到的代码无效,因为我将typeddataset从entitty传递给dataaccess。请帮我解释如何实现下面的
int ExecuteDataAdapterDataTableWithParams(IDbCommand podbCommand, ref DataTable pdtDataTable);
public int ExecuteDataAdapterDataTableWithParams(IDbCommand podbCommand, ref
DataTable pdtDT)
{
IDataAdapter ldaDataAdapter = default(IDataAdapter);
IDbTransaction lodbTrans = default(IDbTransaction);
int liFetchedRows = 0;
lodbTrans = EstablishConnection();
try
{
podbCommand.Connection = coConnection;
podbCommand.Transaction = lodbTrans;
ldaDataAdapter = GetDataAdapter(ref podbCommand);
ldaDataAdapter.TableMappings.Add("Table", pdtDT.TableName);
liFetchedRows = ldaDataAdapter.Fill(pdtDT.DataSet);
liFetchedRows = pdtDT.Rows.Count;
}
catch (Exception ex)
{
throw (ex);
}
finally
{
CloseConnection(ref lodbTrans);
}
return liFetchedRows;
}
如何在dataacess类中实现下面提到的INTERFACE函数?
int ExecuteDataAdapterDataTableWithParams<T>(IDbCommand podbCommand, ref T pdtDataTable) where T : DataTable;
答案 0 :(得分:1)
接口
public interface ITest
{
int ExecuteDataAdapterDataTableWithParams<T>(IDbCommand podbCommand, ref T pdtDataTable) where T : DataTable;
}
实施
public class Test : ITest
{
public int ExecuteDataAdapterDataTableWithParams<T>(IDbCommand podbCommand, ref T pdtDT) where T : DataTable
{
IDataAdapter ldaDataAdapter = default(IDataAdapter);
IDbTransaction lodbTrans = default(IDbTransaction);
int liFetchedRows = 0;
lodbTrans = EstablishConnection();
try
{
podbCommand.Connection = coConnection;
podbCommand.Transaction = lodbTrans;
ldaDataAdapter = GetDataAdapter(ref podbCommand);
ldaDataAdapter.TableMappings.Add("Table", pdtDT.TableName);
liFetchedRows = ldaDataAdapter.Fill(pdtDT.DataSet);
liFetchedRows = pdtDT.Rows.Count;
}
catch (Exception ex)
{
throw (ex);
}
finally
{
CloseConnection(ref lodbTrans);
}
return liFetchedRows;
}
}