【问题标题】:ASP.net weird grid view behaviorASP.net 奇怪的网格视图行为
【发布时间】:2011-07-25 13:24:58
【问题描述】:

我正在使用 Visual Studio 2010 创建一个 ASP Web 应用程序。我正在尝试使用网格视图实现搜索功能,我将在其中将 ADO 选择命令传递到数据集并用我想要的 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 行,但它们是空的。有什么想法或其他方法可以解决这个问题吗?谢谢!

附:我尝试使用数据绑定向导,但最终我希望在搜索中具有更大的灵活性,例如

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

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

【问题讨论】:

  • 在 ASPX/ASCX 布局中显示您的网格定义

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


【解决方案1】:

我会执行以下操作来解决问题。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-10
    • 2015-07-06
    • 2011-01-18
    • 2019-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多