Динамическое использование операторов SQL для 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 ответ

Вам необходимо назначить результат 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

Другие вопросы по тегам