【问题标题】:Dynamically using SQL statements for SQLDataSource为 SQLDataSource 动态使用 SQL 语句
【发布时间】:2012-05-23 18:44:25
【问题描述】:

我可能会或可能不会在这里为你们提出一个非常简单的问题。基于我的 if-else 语句是否存在字符串,我试图调用带有参数的 SELECT 语句,并将它们都传递给相同的结果 GridView。

这是我想要做的:

 string query;
 if(BadgeNumLabel.Text != "")
 {
     query = "SELECT * FROM AUDITS";
 else
 {
     query = "SELECT * FROM AUDITS WHERE BADGENUM = :BadgeNumLabel";
     GridDataSource.SelectParameters.Add(new Parameter("BadgeNumLabel",TypeCode.String, BadgeNumLabel.Text));
 }

 GridDataSource.SelectCommand = query;
 GridView1.DataBind();

我的 .aspx 代码如下所示:

 <asp:SqlDataSource ID="GridDataSource" runat="server"
            ConnectionString="<%$ ConnectionStrings:OracleConnectionString %>" 
            ProviderName="<%$ ConnectionStrings:OracleConnectionString.ProviderName %>"  
            onselecting="GridDataSource_Selecting">


        </asp:SqlDataSource>  

我有什么遗漏吗?我很难过。我认为它必须通过传递参数 BadgeNumLabel 来做一些事情,但我不确定。

非常感谢任何帮助!谢谢!

【问题讨论】:

  • 你在哪里传递参数值?。你也测试那个 sql 查询吗?
  • 我试过用这个:GridDataSource.SelectParameters.Add(new Parameter("BadgeNumLabel", TypeCode.String, BadgeNumLabel.Text));但它没有用。
  • 所以你的意思是,你运行时没有得到任何结果?
  • 数据绑定时抛出异常。

标签: c# asp.net oracle sqldatasource


【解决方案1】:

您需要将GridDataSource 的结果分配给GridView1.DataSource

SqlConnection sqlConnection1 = new SqlConnection("Your Connection String");
SqlCommand GridDataSource= new SqlCommand();

GridDataSource.CommandText = "SELECT * FROM AUDITS";
GridDataSource.CommandType = CommandType.Text;
GridDataSource.Connection = sqlConnection1;

sqlConnection1.Open();

GridView1.DataSource = GridDataSource.ExecuteReader();
GridView1.DataBind();

编辑

不是字面上的ExecuteCommand,我想说的是,你需要将SqlCommand的结果赋给GridView

【讨论】:

  • 当我进入该行时,它说我没有对 GridDataSource.ExecuteCommand 的程序集引用。
  • 你会在哪里使用上面的“SqlDataReader”对象。看起来您已经创建了它但还没有使用它。另外,如果我已经创建了一个 SQLDataSource,我是否需要打开一个新连接?
  • 好的,我刚刚删除了SqlDataReader。您应该运行这个快速示例,只需添加连接字符串,如果它有效,那么您确定问题在于您没有将生成的查询分配给 GridView1.DataSource
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-01
  • 1970-01-01
  • 2013-04-30
  • 2019-01-02
  • 1970-01-01
  • 2020-09-09
  • 1970-01-01
相关资源
最近更新 更多