Автозаполнение текстового поля с MySQL - PullRequest
1 голос
/ 13 июня 2011

Я пытаюсь выполнить автозаполнение текстового поля, используя приведенный ниже код, но выдает ошибку

ERROR :"Object reference not set to an instance of an object"

в этой строке:

for (int count = 0; count < dt.Rows.Count; count++)

Может кто-нибудь помочь мне?

private void tbMemberName_TextChanged_1(object sender, EventArgs e)
{
    tbMemberName.AutoCompleteMode = AutoCompleteMode.Suggest;
    tbMemberName.AutoCompleteSource = AutoCompleteSource.CustomSource;
    AutoCompleteStringCollection namec = new AutoCompleteStringCollection();

    //string search ="%"+ tbMemberName.Text +"%";
    //string @Name = tbMemberName.Text; 
    String sql =
        @"SELECT DISTINCT(member_Firstname +''+ member_Lastname) AS Name FROM members WHERE Name  Like '%'+tbMemberName.Text+'%'";
    DataTable dt = MemberFormHelper.GetData(sql, mf);
    if (dt.Rows.Count >= 0)
    {
        for (int count = 0; count < dt.Rows.Count; count++)
        {
            namec.Add(dt.Rows[count][Name].ToString());
        }
    }
    tbMemberName.AutoCompleteCustomSource = namec;
}

Ответы [ 2 ]

0 голосов
/ 20 января 2012

Попробуйте

for (int count = 0; count < dt.Rows.Count-1; count++)

Если количество строк равно 10, вам необходимо выполнить цикл от 0 до 9 (10-1).

Приветствия

0 голосов
/ 13 июня 2011

, если NRE от этой линии

for (int count = 0; count < dt.Rows.Count; count++), тогда это может означать, что dt равно нулю.

поэтому MemberFormHelper.GetData(sql, mf); возвращает нулевое значение. Либо исправьте GetData(), либо проверьте dt на ноль перед циклом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...