2014-12-05 4 views
0

У меня есть некоторая ошибка здесь, и у меня нет проблемы с ее решением. он не смог назвать список таблицыeRROR С: Строка ввода не была в правильном формате

я пытаюсь вызвать отладки и когда он достигнет заявление ниже

List<Int32> ListintNo = DT_ExcludeNo.AsEnumerable().Select(x 
    =>Convert.ToInt32(x[0].ToString())).ToList(); 

Просьба помочь.

DataTable DT_ExcludeNo = new DataTable(); 
     dataAdapter.Fill(DT_ExcludeNo); 

     InsertLogFile("AMB SP15: Validate Insert Data"); 

     //InsertLogFile("AMB SP15: Execute Query: " + sSqlCommandRetrieveExcludeNO); 

     List<Int32> ListintNo = DT_ExcludeNo.AsEnumerable().Select(x => Convert.ToInt32(x[0].ToString())).ToList(); 
     for (Int32 i = 1; i <= TotalCount; i++) 
     { 
      foreach (Int32 intNo in ListintNo) 
      { 
       if (i == intNo) 
       { 
       string sSqlCommandRetrieveData = "SELECT Name, [I.C], [D.O.B], NO, [EFF DATE], Sum_Insured from AMB_Temp WHERE NO = " + i; 

       SqlCommand obj_SQLCommand = new SqlCommand(sSqlCommandRetrieveData, myconn); 
       dataAdapter = new SqlDataAdapter(obj_SQLCommand); 

       DataSet DS_RetrieveData = new DataSet(); 
       dataAdapter.Fill(DS_RetrieveData); 

       //InsertLogFile("AMB SP15: Execute Query: " + sSqlCommandRetrieveData); 

       DataValidation(DS_RetrieveData); 
       } 
+1

показать нам трассировку стека или строку, в которой происходит исключение, и каковы значения параметров, если таковые имеются. вы также не показываете нам фрагмент кода того, что x [0] на самом деле. что такое «х»? какая это ценность? какой тип объекта это? Что находится в данных по этому индексу? –

+0

Привет, строка исключения: Список ListintNo = DT_ExcludeNo.AsEnumerable(). Выберите (x => Convert.ToInt32 (x [0] .ToString())). ToList(); – user1210826

+0

Значение dataTable Нет было число/nvarchar – user1210826

ответ

0

Вот обновленный код:

//start new code 
string fieldString = x[0].ToString(); 
if (string.IsNullOrEmpty(fieldString)) 
{ 
    fieldString = "0"; 
} 
//InsertLogFile("AMB SP15: Execute Query: " + sSqlCommandRetrieveExcludeNO); 

List<Int32> ListintNo = DT_ExcludeNo.AsEnumerable().Select(x => Convert.ToInt32(fieldString)).ToList(); 
//end new code 
    DataTable DT_ExcludeNo = new DataTable(); 
    dataAdapter.Fill(DT_ExcludeNo); 

    InsertLogFile("AMB SP15: Validate Insert Data"); 

    //InsertLogFile("AMB SP15: Execute Query: " + sSqlCommandRetrieveExcludeNO); 
     string fieldString = x[0].ToString(); 
     if (string.IsNullOrEmpty(fieldString)) 
     { fieldString = "0"; } 

    List<Int32> ListintNo = DT_ExcludeNo.AsEnumerable().Select(x => Convert.ToInt32(fieldString)).ToList(); 



     for (Int32 i = 1; i <= TotalCount; i++) 
    { 
     foreach (Int32 intNo in ListintNo) 
     { 
      if (i == intNo) 
      { 
      string sSqlCommandRetrieveData = "SELECT Name, [I.C], [D.O.B], NO, [EFF DATE], Sum_Insured from AMB_Temp WHERE NO = " + i; 

      SqlCommand obj_SQLCommand = new SqlCommand(sSqlCommandRetrieveData, myconn); 
      dataAdapter = new SqlDataAdapter(obj_SQLCommand); 

      DataSet DS_RetrieveData = new DataSet(); 
      dataAdapter.Fill(DS_RetrieveData); 

      //InsertLogFile("AMB SP15: Execute Query: " + sSqlCommandRetrieveData); 

      DataValidation(DS_RetrieveData); 
      } 
+0

nope. вам не нужно это делать. Он все равно будет компилироваться. Исходная ошибка также является ошибкой RUNTIME. –

+0

Я предполагаю, что это происходит, когда метод dataAdapter.Fill вызывается с использованием динамического sql. Sqlcommand принимает строку как параметр, но во время выполнения ей назначается строка плюс int. –

+0

Ошибка происходит в строке: Список ListintNo = DT_ExcludeNo.AsEnumerable(). Выберите (x => Convert.ToInt32 (x [0] .ToString())). ToList(); – user1210826

0

Пожалуйста, проверьте поле базы данных столбца типа данных NO если VarChar or Char вы должны изменить где заявление.

string sSqlCommandRetrieveData = "SELECT Name, [I.C], [D.O.B], NO, [EFF DATE], Sum_Insured from AMB_Temp WHERE NO = " + Convert. ToString(i); 
+0

Привет, это NVARCHAR, ЧТО МОЖЕТ БЫТЬ ВЫПОЛНИТЬ, ЧТО ЗАЯВЛЕНИЕ? – user1210826

+0

В соответствии с моим пониманием вашего вопроса «NvarChar» возможно в этом утверждении. –

+0

yep вы правы – user1210826