将文本存储为变量,然后在ASP.net中调用

本文关键字:ASP net 调用 然后 文本 存储 变量 | 更新日期: 2023-09-27 18:06:27

我正在制作使用下拉列表和复选框的自定义网格视图。复选框表示要调用的数据库中的列。我的代码隐藏文件是创建一个自定义的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);    
}

将文本存储为变量,然后在ASP.net中调用

你到底遇到了什么问题?

我猜你在运行该查询时遇到了问题,因为它在FROM之前会有一个逗号。保存要搜索的字段的更好方法可能是将值放入单个数组中,然后循环遍历数组的内容,并用逗号分隔每个字段。这样,您的字段列表可以增长和缩小到任何大小,而不必担心空值。您可能还想考虑将"a"值包装在单引号中(假设您正在读取字符串…)

旧代码:

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

Result: *SELECT Address,Phone,Email,FROM Employee WHERE Employee_ID = Bob Jones*

新代码:

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

Result: *SELECT Address, Phone, Email FROM Employee WHERE Employee_ID = 'Bob Jones'*

字符串连接是你想要的吗?

试着用这个:

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