如何在文本框中使用带有where子句的I SqlCommand?

时间:2013-08-19 07:01:33

标签: asp.net

String strcon = ConfigurationManager.ConnectionStrings["con"].ToString();
SqlConnection con;

protected void run_save(object sender, EventArgs e)
{
    con = new SqlConnection(strcon);
    String select = txtComand.Text;
    SqlCommand cmd = new SqlCommand(select, con);
    con.Open();
    SqlDataReader dr = cmd.ExecuteReader();

    if (dr.Read())
    {
        gridview1.DataSource = dr;
        gridview1.DataBind();
        con.Close();


 <asp:TextBox runat="server" ID="txtComand" TextMode="MultiLine" Height="227px" 
            Width="352px"></asp:TextBox>

 <asp:Button runat="server" ID="idRun" OnClick="run_save" Text="RUN" />
 <asp:GridView runat="server" ID="gridview1"></asp:GridView>

我在文本框中编写sql comnd ...就像select * from test ...所有数据都显示在gridview中..但是我正在编写select * from test其中id = 5..then不能正常工作

1 个答案:

答案 0 :(得分:1)

使用当前的Implementation,您需要在TextBox控件中输入完整的Select Query with Where子句:txtCommand,因为您正在将textCommand的全文读入select形成SelectQuery的字符串。一种更好的方法是只将Where中使用的值输入到文本框中,并将其附加到实际的SQLSelect查询中:

string select= "Select * from test where ID=" + "'" +txtCommand.Text+ "'";

请注意,上述简单方法为SQL注入攻击提供了许多方法。因此 仅将此示例用于启动,然后实施不同的安全方式