0

我有一个表单,用户输入名称并根据该名称选择所有内容,理想情况下,我希望能够拥有它,因此如果他们输入一半名称或仅输入名称,它将从数据库中选择所有内容字符所以每个名字是戴夫等的人。

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

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

有没有一种方法可以选择名称与输入的内容相同的位置?

4

4 回答 4

2

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

于 2013-10-28T11:23:22.757 回答
1

尝试这个:

 SELECT *
    FROM TABLE1
    WHERE COL1 LIKE '%TYPED NAME%'
于 2013-10-28T11:19:56.743 回答
1

尝试这个:

SELECT * FROM tbl_yourtable t WHERE t.columnname LIKE '%' + @searchstring + '%'
于 2013-10-28T11:21:41.173 回答
0

如果您想在 c# 字符串上使用SQL'LIKE运算符之类的东西,请使用 Contains 方法。

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

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

如果您想在不使用数据库的情况下获得 Amirreza Keshavarz 或 P5Coder 的答案的结果,请使用 Linq To Objects and Contains 方法。

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

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

IEnumerable<string> result = myStringList.Where(ms => ms.StartsWith("typed string"));
于 2013-10-28T11:59:39.947 回答