ASP.net奇怪的网格视图行为

时间:2011-07-25 13:24:58

标签: c# asp.net sql visual-studio-2010 ado.net

我正在使用visual studio 2010创建一个ASP Web应用程序。我正在尝试使用网格视图实现搜索功能,其中我将ADO select命令传递到数据集并使用我想要的SQL填充数据网格。我知道这对于winforms和datagridviews是可能的,但由于某种原因,它在我的ASP应用程序上表现得很奇怪。这是一些代码...

   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。我尝试使用数据绑定向导,但我想在搜索中获得更多灵活性,例如

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

我尝试在查询构建器中编写此代码,但我需要添加一些if条件来说明供应商是否具有值或为null(复选框)。如果这是正确的方法,那么请说出来。感谢

1 个答案:

答案 0 :(得分:1)

我会执行以下操作进行问题排查。

  1. 直接从SSMS运行查询,以验证您是否收到了预期的结果。
  2. 如果您没有手动定义列,请确保GridView具有AutoGenerateColumns = true。
  3. 在调试模式下运行,并在ds.Clear()上设置断点,并检查新添加的参数,看它是否包含您期望的值。