我有一个webform,我可以在一个带有gridview的页面上显示mysql数据库中的数据。我在webform上放了一个Textbox,我想在数据库记录中搜索。
string mysqlconnectionstring = "Server=server;Database=dataser;Uid=user;Pwd=passw;CharSet=utf8";
MySqlConnection MyConnection = new MySqlConnection(mysqlconnectionstring);
string query = "select * from Tools where NameofTool like '" + Search_txt.Text + "%'";
MySqlDataAdapter da = new MySqlDataAdapter(query, MyConnection);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1_0.DataSource = ds;
GridView1_0.DataBind();
所以,如果我理解从一开始就从数据源中提取所有数据的问题,然后我想给它进行搜索。当然,我可以解释它错了,抱歉。
因此,目标是从DataSource获取数据,使用GridView运行它,然后根据结果更新GridView。
谢谢:)
答案 0 :(得分:0)
dt2.Rows.Clear();
cn.Open();
string comm = "SELECT * From Ansprechperson WHERE Name LIKE '%'+ @Firma + '%' AND KundenNr LIKE @KundenNr";
cmd = new SqlCeCommand(comm, cn);
cmd.Parameters.Add("@Firma", SqlDbType.NVarChar, 100).Value = editContactFilter.Text;
cmd.Parameters.Add("@KundenNr", SqlDbType.NVarChar, 100).Value = KundenNr;
using (adapt = new SqlCeDataAdapter(cmd))
{
adapt.Fill(dt2);
}
dataGridView2.DataSource = dt2;
cn.Close();
这是一个对我有用的例子。请查看参数以使您的应用程序SQL注入安全。 Why Parameters protect you from SQL-Injection.
dt2是一个DataTable:
DataTable dt2 = new DataTable();
答案 1 :(得分:-1)
理想的方法是从sql insdead中搜索精确数据,首先获取数据集中的所有数据,然后进行其他搜索。
请不要使用像
这样的内联查询string query = "select * from Tools where NameofTool like '" + Search_txt.Text + "%'";
而是使用存储过程。这些内联查询很容易被SQL注入。
所以你的ans将是"创建一个带有filter参数的存储过程" 然后使用返回的数据绑定GridView。