Нет результатов от SQL Server 2008 R2 Express - PullRequest
3 голосов
/ 25 июня 2011

У меня следующая ситуация:

string SelectDeb = @"select debid,naam,adres,huisnr,plaats
                        from debiteuren";

using (SqlConnection con = new SqlConnection(connection))
{
    using (SqlDataAdapter sqlAdapt = new SqlDataAdapter(SelectDeb, con))                 
    {                           
        sqlAdapt.Fill(ds, TableName);
    }
} 

Приведенный выше код работает очень хорошо и без проблем, и он дает мне нужные мне строки.

Это всего лишь часть всего кода, но чтобы продолжить тему, я написал здесь только эти строки. В чем проблема?

Проблема в том, что когда я изменяю sql на

string SelectDeb = @"select debid,naam,adres,huisnr,plaats,actief 
                     from debiteuren
                     where actief = @actief";

sqlAdapt.SelectCommand.Parameters.AddWithValue("@actief", true)

или

string SelectDeb = @"select debid,naam,adres,huisnr,plaats,actief 
                     from debiteuren
                     where actief = 'True'";

Я вообще не получаю рядов !!!

Неважно, если я использую параметр, если я заполняю предложение where без параметра, а просто заполняю любое предложение where данными, я не получаю никаких строк

Если я использую тот же sql напрямую в базе данных, я получаю ожидаемые строки.

Итак, что же не так?

Я использую VS2010 professional с SP1 и SQL Server 2008 R2 Express Edition

Когда я писал подобное приложение в VS2005 с SQL Server 2005 Express Edition, у меня нет проблем и я могу использовать параметры.


EDIT:

Спасибо всем за ответы.

TableName - это строка, представляющая набор результатов в наборе данных после заполнения. Это дано как параметр к методу (не показан) Единственная проблема заключается в том, что я не получаю строк вообще ПОСЛЕ использования выражения where. Неважно, какой фильтр я использую. Я также попробовал это с полем строк (NVarChar в базе данных), а затем также без строк в наборе результатов. Таким образом, все работает нормально, но после одной строки кода, просто «где предложение», и это не работает. У меня большой опыт (в базе данных и в Delphi, но плохо знаком с C #), и я никогда не видел ничего подобного.

Тип столбца 'actief' - это bool (в базе данных бит)

sql, который отлично работает в базе данных -

выберите debid, naam, adres, huisnr, huisnr_toev, postbus, почтовый индекс, postc_bus, tav, plaats, тел, actief от дебитюрен где actief = 'True'

Так что просто строка , где actief = 'True' работает не в коде в VS2010 ALso , где actief = 1 не работает А также naam = 'Test' не работает (Test существует в базе данных)

1 Ответ

0 голосов
/ 26 июня 2011
 sqlAdapt.Fill(ds, TableName);

Что такое TableName? Похоже, вы не используете команду для заполнения набора данных для меня.

Попробуйте что-то вроде этого:

DataSet dataset;

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