2015-10-21 1 views
1

Я произошли проблемы в получении моего значение строки после того, как я прочитал его из базы данных с помощью OleDbCommandприбудете строки базы данных значение столбца с OleDbCommand

Текущий код:

private static string TryCheckDateTime(OleDbConnection cn, string table, string colName, string dataColumn) 
    { 
     if (dataColumn.Contains(AllowedValues.String.ToString())) 
     { 
      using (OleDbCommand cmd = new OleDbCommand()) 
      { 
       OleDbDataReader rowItems; 
       // Connection to Database 
       cmd.Connection = cn; 
       // Query script: "SELECT TOP 5 {0} FROM [DBName].[dbo].[{1}]" 
       cmd.CommandText = string.Format(Values.VerifyDatetime, colName, table); 
       // Gets top 5 rows 
       rowItems = cmd.ExecuteReader(CommandBehavior.Default); 

       foreach (var row in rowItems) 
       { 
        // how can I get that row data? 
        var a = row; 
       } 
      } 
     } 
     return null; 
    } 

И значение, что я хочу получить :

enter image description here

ответ

1

вы пытались

string test; 
while (rowItems.Read()) 
    test = rowItems[0].ToString(); 

?

+0

Не, дает 'Невозможно применить индексирование с [] к выражению типа«object'' – Taurib

+0

Извините. Попробуйте изменить 'foreach' на' string test; while (rowItems.Read()) test = rowItems [0] .ToString(); ' –

+0

Привет, это работает! Спасибо! :) – Taurib

0

Возможно, это могло бы помочь. Используйте .HasRows первый затем .read()

if (rowItems.HasRows) 
     { 
     rowItems.Read(); 
       foreach(var row in rowItems) 
       { 

        var a = row["sampleonly"].ToString(); // or something 
       } 
     } 
else 
     { 
      // do something 
     } 
+0

То же, что и ответ Педро 'Невозможно применить индексирование с [] к выражению типа 'object'' – Taurib