选择字符串是否与数据库中的字段类似

时间:2013-10-28 11:14:36

标签: c# sql

我有一个表单,其中用户键入一个名称,它根据该名称选择所有内容。理想情况下,我希望能够拥有它,以便它可以从数据库中选择所有内容,如果他们键入了一半的名称或者只是一个角色,所以每个人的名字都是dave等。

try
{
    this.access_PermissionTableAdapter.FillBy(
        this.vehicleManagementDataSet.Access_Permission,   
        this.userNameToolStripTextBox.Text);
}
catch (System.Exception ex)
{
    System.Windows.Forms.MessageBox.Show(ex.Message);
}

这将在名称拼写为letter的字母时选择所有字段,但如果部分键入则不会。我一直在研究C#提供的方法,如contains和starswith,但似乎都不合适。

有没有办法选择名称与输入内容的位置?

4 个答案:

答案 0 :(得分:2)

如果您有一个强类型数据集,您可以创建自己的自定义查询(在您的情况下,我将调用查询StartingWith,其SQL代码由其他两个响应给出,并且将生成一个名为FillByStartingWith)的方法。有关如何执行此操作的说明,请参阅http://msdn.microsoft.com/en-us/library/kda44dwy(v=vs.80).aspx

答案 1 :(得分:1)

试试这个:

 SELECT *
    FROM TABLE1
    WHERE COL1 LIKE '%TYPED NAME%'

答案 2 :(得分:1)

试试这个:

SELECT * FROM tbl_yourtable t WHERE t.columnname LIKE '%' + @searchstring + '%'

答案 3 :(得分:0)

如果您想在c#字符串上使用类似SQL的{​​{1}}运算符的内容,请使用Contains方法。

例如,您有一个字符串列表:

LIKE

如果你想要实现Amirreza Keshavarz或P5Coder的回答不使用数据库的结果,那么使用Linq To Objects and Contains方法。

List<string> myStringList = new List<string>();
//fill the list

如果您想要以键入的字符串开头的字符串,请使用:

IEnumerable<string> result = myStringList.Where(ms => ms.Contains("typed string"));