Я преобразовываю код vb.net в C#. При передаче типизированного набора данных из класса сущности в параметры нетипизированного набора данных, которые доступны в dataaccess, я получаю ошибку на C#, но vb.net я не получаю ошибку.Как реализовать функцию интерфейса в классе
Одна функция, объявленная в INTERFACE, и я реализую ее в одном классе. Через Google я обнаружил, как объявить функцию в INTERFACE, но я не знаю, как ее реализовать в классе.
Из функции мне нужны как счетчик, так и дата, для этого я использовал 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 из права на dataaccess.Ple ase help me, как реализовать ниже
упомянутая функция.
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?
int ExecuteDataAdapterDataTableWithParams<T>(IDbCommand podbCommand, ref T pdtDataTable) where T : DataTable;
попробовать {...} поймать {...} бесполезно здесь: улов (Exception ех) {бросок (ех);} не делает ничего, кроме повторного выброса исключения. Вот почему try {...} finally {...} вполне достаточно –
Спасибо за комментарий, я это знаю. Но это было в его коде. Поэтому, смущая его, я показал, как идет реализация. – Rakhita