Заполнение list из таблицы SQL SERVER C# WinForms
Пытаюсь заполнить list из 1 столбца таблицы SQL SERVER для дальнейшего вывода list[i] в label1, label 2 и тд. Лист заполняется только данными System.Data.DataRow . Подскажите что делаю не так? Возможно есть способ попроще. К примеру заполнить массив строками из столбца БД.
int rr = 0;
SqlConnection connection = new SqlConnection(connectionString);
SqlDataAdapter adapter = new SqlDataAdapter("SELECT Answer FROM Answer", connection);
DataTable table = new DataTable();
adapter.Fill(table);
List<string> list = new List<string>();
foreach (DataRow row in table.Rows)
{
list.Add(row.ToString());
row[rr].ToString();// - к отдельной ячейке в указанной строке
}
// здесь просто уже игрался по разному
label1.Text = Convert.ToString(question[0]);
label2.Text = list[0];
label3.Text = Convert.ToString(list[1]);
label4.Text = Convert.ToString(list[2]);
label5.Text = Convert.ToString(list[3]);
Лист заполняется только данными System.Data.DataRow . Подскажите что делаю не так? Возможно есть способ попроще. К примеру заполнить массив строками из столбца БД.
Ответы (2 шт):
Автор решения: Grandmother
→ Ссылка
table.Rows[0].ItemArray[1].ToString();
Попробуйте обращаться именно к нужной колонке ItemArray[1]
Автор решения: SOLOSUQA
→ Ссылка
Спасибо, получилось по другом!
List<dynamic> questions = new List<dynamic>();
List<dynamic> answers = new List<dynamic>();
List<dynamic> results = new List<dynamic>();
SqlConnection connection = new SqlConnection(connectionString);
//string query2 = "select * from \"dbo.Question\"";
string query2 = "select * from Question";
SqlCommand cmd2 = new SqlCommand(query2, connection);
DataTable table2 = new DataTable();
SqlDataAdapter adapter2 = new SqlDataAdapter(cmd2);
adapter2.Fill(table2);
foreach (DataRow row in table2.Rows)
{
var item = new
{
IDQuestion = row["IDQuestion"],
Question = row["Question"]
};
questions.Add(item);
}
//получаю ответы
//string query = "select * from \"dbo.Answer\"";
string query = "select * from Answer";
SqlCommand cmd = new SqlCommand(query, connection);
DataTable table = new DataTable();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(table);
foreach (DataRow row in table.Rows)
{
var item = new
{
IDAnswer = row["IDAnswer"],
Answer = row["Answer"],
Point = row["Point"],
IDQuestion = row["IDQuestion"]
};
answers.Add(item);
}
//заполняю первый вопрос + ответы
label1.Text = questions[0].Question;
label2.Text = answers[0].Answer;
label3.Text = answers[1].Answer;
label4.Text = answers[2].Answer;
label5.Text = answers[3].Answer;