簡體   English   中英

沒有SQL Server 2008 R2 Express的結果

[英]No results from SQL Server 2008 R2 Express

我有以下情況:

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專業版SP1和SQL Server 2008 R2 Express Edition

當我在VS2005中使用SQL Server 2005 Express Edition編寫類似的應用程序時,我沒有問題並且可以使用參數。


編輯:

謝謝大家回答。

TableName是一個字符串,表示填充后數據集中的結果集。 它作為方法的參數給出(未顯示)唯一的問題是我在使用where子句后完全沒有行。 我使用的過濾器並不重要。 我也嘗試過使用stringfield(數據庫中的NVarChar),然后在結果集中也沒有行。 因此,一切正常,但在一行代碼之后,只是'where子句'並且它不起作用。 我有很多經驗(在數據庫和Delphi中,但對C#來說是新手)並且從未見過這樣的東西。

列'actief'的類型是bool(在數據庫中有點)

在數據庫中正常工作的sql是

選擇debid,naam,adres,huisnr,huisnr_toev,postbus,postcode,postc_bus,tav,plaats,tel,actief from debiteuren where actief ='True'

所以只有actief ='True'的行不能在VS2010中的代碼中運行ALso,其中actief = 1不起作用而且naam ='Test'不起作用(測試確實存在於數據庫中)

 sqlAdapt.Fill(ds, TableName);

什么是TableName? 看起來您沒有使用命令將數據集填充給我。

嘗試這樣的事情:

DataSet dataset;

sqlAdapt.Fill(dataset);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM