我有一个表单,其中用户键入一个名称,它根据该名称选择所有内容。理想情况下,我希望能够拥有它,以便它可以从数据库中选择所有内容,如果他们键入了一半的名称或者只是一个角色,所以每个人的名字都是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,但似乎都不合适。
有没有办法选择名称与输入内容的位置?
答案 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"));