簡體   English   中英

將文本存儲為變量,然后在ASP.net中調用

[英]Store text as variable then call in ASP.net

我正在使用dropdownlist和復選框來制作自定義的gridview。 復選框代表數據庫中要調用的列。 我的代碼隱藏文件是創建一個自定義的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>

=======================代碼隱藏========================== =

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);    
}

您正在尋找String級聯嗎?

嘗試使用此:

string Query = String.Format("SELECT {0} {1} {2} FROM Employee WHERE Employee_ID ={3}",b,c,d,a);

您遇到的問題到底是什么?

我猜您在運行該查詢時遇到了問題,因為它在FROM之前會有一個逗號。 保留要搜索的字段的一種更好的方法可能是將值推入單個數組中,然后遍歷數組的內容並用逗號分隔每個字段。 這樣,您的字段列表可以增長和縮小到任意大小,而不必擔心空值。 您可能還需要考慮將“ a”值包裝在單引號中(假設您正在讀取字符串...)

舊代碼:

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

結果: *選擇地址,電話,電子郵件,從雇員那里雇員ID =鮑勃·瓊斯*

新代碼:

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

結果: *選擇來自員工的地址,電話,電子郵件WHERE Employee_ID ='Bob Jones'*

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM