[英]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.