#c# #sql #combobox
#c# #sql #combobox
Вопрос:
У меня есть combbox с именем comboBox2, и я хочу заполнить этот combobox столбцом с именем ‘Stud_Name’ моей таблицы базы данных с именем ‘Student_Table’ Я использую следующий код:
void Fillcombo()
{
string constring = "Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\ChaCha\ChaCha\chacha.mdf;Integrated Security=False";
string query = "select * from database.Student_Table";
SqlConnection condb = new SqlConnection(constring);
SqlCommand cmddb = new SqlCommand(query, condb);
SqlDataReader myreader;
try
{
condb.Open();
myreader = cmddb.ExecuteReader();
while(myreader.Read())
{
string sName = myreader.GetString("Stud_Name");
comboBox2.Items.Add(sName);
}
}
catch (Exception ex)
{
}
}
Но я получаю сообщение об ошибке, подобное этому:
Лучший перегруженный метод подходит для ‘System.Data.Обычный.DbDataReader.getString(int)’ имеет некоторые недопустимые аргументы.
Как я могу удалить эту ошибку? Я использую Visual Studio 2012.
Ответ №1:
В сообщении об ошибке четко указано;
Нет перегрузки SqlDataReader.GetString
метода, который принимает string
в качестве параметра.
Этот метод принимает int
в качестве параметра номер столбца с нулевым значением, который вы хотите получить.
Вам нужно указать в качестве целого значения Stud_Name
номер столбца в вашем запросе.
Например; если ваш Stud_Name
столбец является первым столбцом вашего query
, вы можете использовать его как;
string sName = myreader.GetString(0);
Также используйте using
оператор для удаления вашего SqlConnection
, SqlCommand
и SqlDataReader
.
Комментарии:
1. Спасибо. Ошибка исчезла. Но, когда я запускаю программу, выпадающий список по-прежнему пуст.
2. Вы уверены, что ваш запрос возвращает данные? Вы отлаживали свой код? Вы уверены, что у вас
sName
есть данные?3. Нет. Я проверил это. В sName нет никаких данных. В чем может быть проблема?
4. Большое вам спасибо. Я понял. Я только что изменил ‘database. Student_Table’ в ‘Student_Table’.
Ответ №2:
Ваша проблема заключается в параметре, который вы передаете вызываемому методу GetString
. Вы должны передать туда индекс столбца, из которого вы хотите прочитать. Вместо этого вы передаете имя столбца. Вот почему вы получаете это сообщение об ошибке.
Для получения дополнительной документации, пожалуйста, посмотрите здесь.
Комментарии:
1. Спасибо. Ошибка исчезла. Но, когда я запускаю программу, выпадающий список по-прежнему пуст.