2016-03-23 4 views
-1
OleDbConnection conn1 = new OleDbConnection(); 
conn1.ConnectionString = (@"ConnectionString"); 
conn1.Open(); 

DataTable dataTable = new DataTable();  

OleDbCommand cmd = new OleDbCommand(sqlstring, conn1); 

foreach(DataRow row in dataTable.Rows) 
{ 
    MessageBox.Show(row["SerialNumber"].ToString()); 
} 

Я пытаюсь получить серийные номера из моей базы данных. Я не уверен, как это сделать. Предполагаю ли я ссылаться на данные, находящиеся где-то внутри DataTable? Я уже установил соединение с моей базой данных. Я хочу все значения в столбце «SerialNumber» в моей «Datatable» гарантии.Проникнуть через Datatable Column

Я считаю, что правильный выбор в этом сенарио верит в foreach?

+0

Этот код работает? Если да, то я бы сказал, что у вас есть правильное решение. – CodingGorilla

+0

Не совсем, я думаю, вы пропустили часть, где вы загружаете DataTable с результатом вашего запроса ... вы должны выполнить cmd и загрузить результаты в DataTable ... а затем пойти с чтением таблицы – Veljko89

+0

Вам нужен DataAdapter или DataReader, чтобы действительно получить данные из базы данных. См. [This] (https://msdn.microsoft.com/en-us/library/haa3afyz (v = vs.110) .aspx), например. – Pikoh

ответ

2

Вы открыли соединение, и у вас есть команда sql, связанная с этим соединением, но вы еще не выполнили команду. И как только вы выполните команду, вам также понадобится прочитать результаты в DataTable.

DataTable dataTable = new DataTable(); 
using (var conn1 = new OleDbConnection(@"ConnectionString")) 
using (var cmd = new OleDbCommand(sqlstring, conn1)) 
{ 
    conn1.Open(); 
    dataTable.Load(cmd.ExecuteReader()); 
} 
foreach(DataRow row in dataTable.Rows) 
{ 
    MessageBox.Show(row["SerialNumber"].ToString()); 
} 
+0

У меня возникла ошибка в 'dataTable.Load (cmd.ExecuteReader());' say 'Необработанное исключение типа 'System.Data.OleDb.OleDbException 'произошел в System.Data.dll Дополнительная информация: Не указано значение для одного или нескольких требуемых параметров. ' – Havoux

+0

Вы должны показать нам, как выглядит ваша sqlstring ... это процедура, есть ли предложение where? – Veljko89

+0

Я исправил некоторый синтаксис, и все это работает сейчас - спасибо всем. Не уверен, почему вопрос получил так много downvotes, хотя: / – Havoux

Смежные вопросы