2012-03-20 3 views
0

私はC#でasp.netのWebサイトを構築しています。ASP.net DataView - Cant apply filter

私はデータビューを使用して、データセットをフィルタリングしてからgridViewに戻すようにしています。

問題は、フィルタを無視してデータセット全体を表示することだけです。ここで

は、誰もが私が間違ってやっているのか分から

public class CData 
{ 
private SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ConnectionString); 
private DataSet ds= new DataSet(); 
private SqlDataAdapter da; 
private DataView dv; 
private SqlCommandBuilder cb; 

public CData() 
{ 
string sql = String.Format("SELECT * FROM table"); 
da = new SqlDataAdapter(sql, cn); 
da.Fill(ds, "Table"); 
dv= new DataView(ds.Tables["Table"]); 
cb = new SqlCommandBuilder(da); 
} 

public DataTable FilterByFk(Int32 FK) 
{ 
    dv.RowFilter = "FK = "+ FK; 
    dv.RowStateFilter = DataViewRowState.ModifiedCurrent; 
    da.Update(ds, "Table"); 
    return ds.Tables["Table"]; 
} 
} 

(以下混乱するためにいくつかの部品を省い)私のコードですか?

答えて

1

フィルタリングする方法をどこから呼び出すのかわかりません。また、RowFilterを正しく適用するには、列名の後に演算子とフィルタリングする値を指定する必要があります。単一引用符で囲まれた値。以下を試してください:

dv.RowFilter = String.Format("FK = '{0}'", FK); 
+0

「フィルタリングする方法をどこから呼び出すのかわかりません」とはどういう意味ですか?私は、データセット 'ds'をフィルタリングしようとしています。返信いただきありがとうございます! – Arcade

+1

私はFilterByFkメソッドへの呼び出しを見ませんが、それは意図的に放棄したものかもしれませんが、値のデータ型に関係なく引用符が絶対に必要です。 – Justin

+0

ああ私は私のaspxページでobjectdatasourceを使ってそのメソッドを呼び出します。私はそれをgridviewにリンクします。 – Arcade