动态地使用SQL语句的SQL语句

时间:2012-05-23 18:44:25

标签: c# asp.net oracle sqldatasource

对于你们,我或许可能没有一个非常简单的问题。基于字符串的存在我的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做一些事情,但我不确定。

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

1 个答案:

答案 0 :(得分: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