Метод обслуживания:
Код: Выделить всё
public List GetStockPIN(string sInput)
{
List listStockInfo = new List();
try
{
DEBUG("Info from GetStockPIN : ", sInput);
// Parse request string
Parseparams(sInput);
string sTerminalId = GetValue("TerminalId");
string sMerchantId = GetValue("MerchantId");
string sBankCode= GetValue("BankCode");
string sAppId = GetValue("AppId");
string sProductName = GetValue("ProductName");
string sDenomName = GetValue("DenomName");
string sQTY = GetValue("QTY");
StockRepository objStockRepository = new StockRepository(sConString) { DenomName = sDenomName, ProductName = sProductName, TerminalId = sTerminalId, Qty = Convert.ToInt32(sQTY) };
listStockInfo = objStockRepository.GetStockPIN();
return listStockInfo;
}
catch (Exception ex)
{
DEBUG("Error from GetStockPIN : ", ex);
return listStockInfo;
}
}
Метод доступа к базе данных:[/b]
Код: Выделить всё
public List GetStockPIN()
{
DataTable dtrec = new DataTable();
List objStockInfo = new List();
SqlConnection conn = null;
try
{
using (conn = new SqlConnection(sConnectionString))
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "prc_GetStockPIN";
cmd.Parameters.Add(new SqlParameter("@TerminalId", SqlDbType.NVarChar));
cmd.Parameters["@TerminalId"].Value = TerminalId;
cmd.Parameters.Add(new SqlParameter("@ProductName", SqlDbType.VarChar));
cmd.Parameters["@ProductName"].Value = ProductName;
cmd.Parameters.Add(new SqlParameter("@DenomName", SqlDbType.VarChar));
cmd.Parameters["@DenomName"].Value = DenomName;
cmd.Parameters.Add(new SqlParameter("@Qty", SqlDbType.Int));
cmd.Parameters["@Qty"].Value = Qty;
conn.Open();
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(dtrec);
}
//Some additional code that generates List
}
}
}
catch (Exception error)
{
throw error;
}
finally
{
if (conn != null)
{
try
{
conn.Close();
}
catch (Exception ex)
{
}
}
}
return objStockInfo;
}
}
Вот результат исключения:
DEBUG: ошибка из GetStockPIN:
в System.Data.SqlClient.SqlConnection.OnError(исключение SqlException, логическое значение BreakConnection, Action`1 WrapCloseInAction)
в System.Data.SqlClient.SqlInternalConnection.OnError(SqlException) исключение, Boolean BreakConnection, Action`1 WrapCloseInAction)
в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
в System.Data.SqlClient.TdsParser.TryRun(RunBehavior) runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet BulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
в System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
в System.Data.SqlClient.SqlDataReader.get_ Метаданные() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean return Поток, логическая асинхронность, Тайм-аут Int32, Задача и задача, логическое значение asyncWrite, SqlDataReader ds)
в System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, логическое returnStream, метод String, завершение TaskCompletionSource`1, тайм-аут Int32, Task& Task, Boolean asyncWrite)
в System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, метод String)
в System.Data.SqlClient.SqlCommand.ExecuteReader(поведение CommandBehavior, метод String) )
в System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(поведение CommandBehavior)
в System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(поведение CommandBehavior)
в System. Data.Common.DbDataAdapter.FillInternal(набор данных DataSet, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, команда IDbCommand, поведение CommandBehavior)
в System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables , Int32 startRecord, Int32 maxRecords, команда IDbCommand, поведение CommandBehavior)
в System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
в TAMSBulkPIN.DAL.StockRepository.GetStockPIN()
в TAMSBulkPIN.BulkPINSVC.GetStockPIN(String sInput)
Подробнее здесь: https://stackoverflow.com/questions/220 ... fill-error