2011-07-25 115 views
0

我在Visual Studio 2010中創建一個ASP Web應用程序。我正在嘗試使用網格視圖實現搜索功能,其中我將ADO選擇命令傳遞到數據集中,並用我所需的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個領域的供應商爲Wilson。當我點擊我的搜索按鈕時,它會帶出3行,但它們是空的。任何想法或其他方式來解決這個問題?謝謝!

P.S.我嘗試使用數據綁定向導,但eventrually我想在更多的flexability,例如

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

我試着在查詢生成器寫這個,但我需要補充一些,如果條件說供應商是否有一個值或爲空(複選框)。如果這是正確的方法,那麼請說出來。謝謝

+0

在ASPX/ASCX佈局中顯示你的網格定義 – sll

回答

1

我會做下面的故障排除。

  1. 直接從SSMS運行查詢以驗證您是否收回了您期望的結果。
  2. 如果您沒有手動定義列,請確保GridView具有AutoGenerateColumns = true。
  3. 在調試模式下運行,並在ds.Clear()上設置斷點,並檢查新添加的參數以確定它包含您期望的值。
+0

你明白了我的感謝 –