2013-11-14 6 views
1

Я нашел это в нескольких полезных местах, которые помогли мне, но не совсем точно, что происходит. У меня есть база данных с данными. Я могу отображать данные на загрузке страницы, и я могу сортировать данные со следующими и предыдущими кнопками, но проблема в том, что моя кнопка поиска не работает и всегда отображает мое сообщение «без строк» ​​при поиске имени. Я уверен, что есть более эффективный способ сделать это, но хавент еще не заглянул в это.Найти данные в наборе данных

Благодаря

Вот мой код:

string searchFor = txtSearch.Text.Trim(); 
    int results = 0; 

    OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=H:\AddressBook.mdb"); 

    conn.Open(); 
    DataSet ds = new DataSet(); 
    string cmd = "SELECT * FROM tblAddressBook"; 

    OleDbDataAdapter da = new OleDbDataAdapter(cmd, conn); 
    da.Fill(ds, "Info"); 

    DataRow[] returedRows; 
    DataRow dr; 
    returedRows = ds.Tables.Select("LastName=' " + searchFor + " ' "); 
    results = returedRows.Length; 

    if (results > 0) 
    { 
     dr = returedRows[0]; 
     txtFirstName.Text = dr["FirstName"].ToString(); 
     txtLastName.Text = dr["LastName"].ToString(); 
     txtEmail.Text = dr["Email"].ToString(); 
     txtPhone.Text = dr["PhoneNumber"].ToString(); 
    } 
    else 
    { 
     lblReturned.Text = "No Rows Found"; 
    } 

    //close the connection 
    conn.Close(); 

ответ

1

Ваша .Select строка добавляет пробел в начале и в конце срока поиска. Если searchFor содержал Thompson тогда ваше заявление будет

.Select("LastName=' Thompson ' ") 

поэтому никаких записей не будет соответствовать, если они не занимали ведущее место. Кроме того, я понятия не имел, что ds.tblAddressBook приходилось делать ничего, так что я просто использовал это вместо:

returedRows = ds.Tables["Info"].Select("LastName='" + searchFor + "'"); 

Теперь вам нужно настроить свой код, чтобы он не взорвется, когда кто-то пытается найти O'Connor.

+0

Я видел проблему с ds.Tables, но все равно искал бы пробелы. Еще раз спасибо. Теперь для решения проблемы О'Коннора –

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