2011-07-25 8 views
0

私はVisual Studio 2010でASP Webアプリケーションを作成しています。私は、データセットにADOのselectコマンドを渡し、私の目的のSQLでデータグリッドを埋めるグリッドビューで検索機能を実装しようとしています。私はこれがwinformsとdatagridviewsのために可能であることを知っているが、何らかの理由で、私のASPアプリケーションで奇妙に動作している。ここにいくつかのコードがあります...ASP.netの奇妙なグリッドビューの動作

protected void btn_search_Click(object sender, EventArgs e) 
    { 
     SqlConnection cs = new SqlConnection("Data Source=WILSON-PC; Initial Catalog=KamManOnline; Integrated Security=TRUE"); 
     SqlDataAdapter da = new SqlDataAdapter(); 
     DataSet ds = new DataSet(); 

     da.SelectCommand = new SqlCommand("SELECT * FROM vw_orderView WHERE Supplier = @Supplier", cs); 

     da.SelectCommand.Parameters.Add("@Supplier", SqlDbType.VarChar).Value = ddl_SupplierView.Text.ToString(); 
     ds.Clear(); 

     da.Fill(ds); 
     gv_search.DataSource = ds.Tables[0]; 
     gv_search.DataBind(); 


    } 

データ量は適切ですがグリッドビューには表示されません。たとえば、サプライヤのためにウィルソンとして3つのフィールドがあるとします。検索ボタンをクリックすると、3行が表示されますが、空です。これを回避するためのアイデアや別の方法はありますか?ありがとう!

P.S.私は、クエリビルダでこれを書いてみましたが、私はサプライヤーが値を持っているかどうかを言うこと条件ならば、いくつかを追加する必要があるか、私はデータバインドウィザードを使用してみましたが、eventrually私は私の検索でよりフレキサビリティをしたい、例えば

SELECT * FROM vw_orderView WHERE (Supplier = @Supplier OR @Supplier IS NULL). 

null(チェックボックス)。これが正しいアプローチであれば、そう言いなさい。ありがとう

+0

グリッド定義をASPX/ASCXレイアウトに表示 – sll

答えて

1

私は以下のトラブルシューティングを行います。

  1. SSMSから直接クエリを実行して、期待した結果が得られることを確認してください。
  2. 列を手動で定義していない場合は、GridViewにAutoGenerateColumns = trueが設定されていることを確認してください。
  3. ブレークポイントをds.Clear()に設定してデバッグモードで実行し、新しく追加したパラメータを調べて、期待する値が含まれているかどうかを確認します。
+0

あなたは私の人に感謝しています –