我对本文中的代码有疑问:
How to display rows based on search value which works for multiple columns
在行dv.RowFilter =" col1 ='" + ss +"'和col2> = 10&#34 ;;
我们如何只使用搜索值并在结果中选择1行?
就像我们有一个专栏:名称,只是在名称列中显示搜索值?
我的代码:
private void button3_Click(object sender, EventArgs e)
{
string ss = searchbox.Text;
SqlConnection con = new SqlConnection("Data Source=.;
Initial Catalog=db3;Integrated Security=True");
sAdapter = new SqlDataAdapter("select * from phone", con);
sAdapter.Fill(sDs, "phone");
DataView dv = sDs.Tables[0].DefaultView;
dataGridView1.DataSource = sDs.Tables["phone"];
dv.RowFilter = "name='" + ss;
}
@ hamed2011已解决问题
答案 0 :(得分:0)
我认为问题依赖于最后一句:
dv.RowFilter = "name='" + ss;
您忘了关闭报价单。它应该是
dv.RowFilter = "name='" + ss+"'";
然而 - 关于附加链接的样本 - 请,请永远不要使用字符串连接查询数据库。这可能是最常见的安全漏洞。
在此处阅读有关使用查询参数的信息:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters%28v=vs.110%29.aspx
编辑:关于行重复,我怀疑数据集中的旧数据。您是否尝试重新创建数据集或在加载前清除它?
确保没有数据重复的正确查询
select distinct name from phone