在数据表的所有列中搜索字符串

时间:2013-07-03 09:17:24

标签: c#

我想搜索一个字符串,如果它存在于数据表中并返回行。例如,我有一个数据表,其中包含用户名,用户密码等字段。现在我的搜索文本将搜索所有字段并返回包含字符串的行。

有人可以帮忙解决这个问题 我用Google搜索了它 我找到了几个解决方案,一个是

Select("Code LIKE '" + lastWord + "%'" );  

但在这里我对“代码”感到困惑。

此致

3 个答案:

答案 0 :(得分:0)

尝试以下内容:

try
{
  SqlCommand cmd=new SqlCommand("select * from tableName where UserName LIKE '%' + @search + '%'", conn);
  cmd.Parameters.AddWithValue("@search",searchbox.text);
  SqlDataAdapter da=new SqlDataAdapter(cmd,con);
  DataSet ds=new Dataset();
  da.Fill(ds);
  //From here you can extract data in DataSet   
}
catch(exception ex)
{

}

可以试试SqlMethods。

执行SqlMethods.Like(str,"%searchbox.text%");

之类的操作

也可以参考this回答。

答案 1 :(得分:0)

你是否需要来自Narayana Vyas的http://vyaskn.tripod.com/search_all_columns_in_all_tables.htm这样的东西。 我之前使用它并且它有效。它搜索给定数据库中所有表的所有列。

如果没有,这个怎么样

DataRow[] filteredRows =   datatable.Select(string.Format("{0} LIKE '%{1}%'", columnName, value));

或检查Find a string in all DataTable columns


答案 2 :(得分:0)

其中一个解决方案就是这样

for(int i=0;i<MyDataset.Tables[0].Columns.count;i++)
{

DataRow[] MyDR=MyDataset.Tables[0].Select(MyDataSet.Tables[0].Columns[i].ToString()+"='"+MyText+"'");

   if(MyDr.Length>0)
   {
   //You Found the item
   }

}

希望这有帮助