Ошибка SQLDataAdapter.FillC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка SQLDataAdapter.Fill

Сообщение Anonymous »

Я получаю сообщение об ошибке при использовании кода ниже. Это происходит не на всех записях. Но по крайней мере в 10 случаях из 5000 транзакций я получаю ошибку ниже. Я перепроверил данные в базе данных, и данные в порядке, но я не уверен, почему получаю эту ошибку. Прошу вас помочь мне показать правильный путь реализации кода.

Метод обслуживания:

Код: Выделить всё

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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • SQLDATAADAPTER.FILL Ошибка
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Ошибка SqlDataAdapter в c Sharp
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • C# проверяет, содержит ли SqlDataAdapter записи
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Получить необработанную строку SQL из запроса SqlDataAdapter
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Использование SqlDataAdapter для вставки строки
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»