Сохранить текст как переменную, затем вызвать в ASP.net - PullRequest
0 голосов
/ 23 августа 2011

Я работаю над созданием пользовательских видов сетки с использованием выпадающего списка и флажков.Флажки представляют столбцы в базе данных для вызова.Мой файл codebehind должен создать настроенный SQL-запрос, который я перезваниваю asp: DqlDataSource ... SelectCommand = ""

На данный момент я пытаюсь сохранить сообщение в (запрос) в переменнуювот где я сейчас застрял ...

<asp:DropDownList ID="DDL" runat="server" DataSourceID="SqlDataSource1" 
        DataTextField="Fullname" DataValueField="Employee_ID"  AutoPostBack="true">
    </asp:DropDownList> 
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:DBConnectionString %>" 
        SelectCommand="@Query">
    </asp:SqlDataSource>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    <asp:CheckBox ID="Address" Text="Address" runat="server" />
    <asp:CheckBox ID="Phone" Text="Phone" runat="server" />
    <asp:CheckBox ID="Email" Text="Email" runat="server" />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <asp:Button ID="ButtonID"  onclick="Create" runat="server" Text="Submit" />
    <br />
    <br />
    <br />
    <br />
    <asp:Label ID="Label1" runat="server" Text=""></asp:Label> -
    <asp:Label ID="Label2" runat="server" Text=""></asp:Label> -
    <asp:Label ID="Label3" runat="server" Text=""></asp:Label> -
    <asp:Label ID="Label4" runat="server" Text=""></asp:Label> -
    <br />
    <asp:Label ID="Label5" runat="server" Text=""></asp:Label>
    <asp:GridView ID="GridView1" runat="server">
    </asp:GridView>

============================= CodeBehind ===========================

protected void Create(object sender, System.EventArgs e)
{

    string a = "";
    string b = "";
    string c = "";
    string d = "";

    if (DDL.SelectedValue == "Select")
    {
        return;
    }
    else
    {
        a = DDL.SelectedValue;
    }
    if (Address.Checked == true)
    {
        b = "Address,";

    }

    if (Phone.Checked == true)
    {
        c = "Phone,";

    }

    if (Email.Checked == true)
    {
        d = "Email,";

    }

        Label1.Text = a;
        Label2.Text = b;
        Label3.Text = c;
        Label4.Text = d;
        string Query = ("SELECT" b c d "FROM Employee WHERE Employee_ID =" a);    
}

Ответы [ 2 ]

0 голосов
/ 23 августа 2011

В чем конкретно проблема, с которой вы работаете?

Я думаю, у вас проблема с запуском этого запроса, потому что перед FROM у него будет запятая.Лучший способ хранения полей, по которым вы хотите осуществлять поиск, может состоять в том, чтобы поместить значения в один массив, а затем перебрать содержимое массива и разделить каждое запятой.Таким образом, ваш список полей может увеличиваться и уменьшаться до любого размера, не беспокоясь о пустых значениях.Возможно, вы захотите заключить значение «a» в одинарные кавычки (при условии, что вы читаете в строках ...)

Старый код:

string Query = ("SELECT" b c d "FROM Employee WHERE Employee_ID =" a); 

Результат: * ВЫБРАТЬ адрес, телефон, электронную почту, ОТ сотрудника, ГДЕ Employee_ID = Боб Джонс *

Новый код:

string Query = "SELECT " + String.Join(", ", arrFields) + " FROM Employee WHERE Employee_ID = '" + a + "'"

Результат: * ВЫБЕРИТЕ адрес, телефон, электронную почту ОТ СОТРУДНИКА, ГДЕ Employee_ID = 'Боб Джонс' *

0 голосов
/ 23 августа 2011

Является ли конкатенация строк тем, что вы ищете?

Попробуйте использовать это:

string Query = String.Format("SELECT {0} {1} {2} FROM Employee WHERE Employee_ID ={3}",b,c,d,a);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...