1
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 where id=5 ..then 不工作

4

1 回答 1

1

使用您当前的实现,您需要在 TextBox Control: 中输入带有 Where 子句的完整 Select Query txtCommand,因为您正在将整个文本读textCommandselect形成 SelectQuery 的字符串中。一种更好的方法是仅在文本框中输入要使用的值Where并将其附加到实际的 SQLSelect 查询中:

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

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

于 2013-08-19T07:49:01.123 回答