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不能正常工作
答案 0 :(得分:1)
使用当前的Implementation,您需要在TextBox控件中输入完整的Select Query with Where子句:txtCommand
,因为您正在将textCommand
的全文读入select
形成SelectQuery的字符串。一种更好的方法是只将Where
中使用的值输入到文本框中,并将其附加到实际的SQLSelect查询中:
string select= "Select * from test where ID=" + "'" +txtCommand.Text+ "'";
请注意,上述简单方法为SQL注入攻击提供了许多方法。因此 仅将此示例用于启动,然后实施不同的安全方式 。