我有一个数据库(SQL服务器(,其中包含一个学生表,其中有字段名称(nvarchar(50((,年龄(int(和生日(日期(。我在 C# 窗口窗体中添加了此数据库。我按名称搜索:
bindingSource.Filter = "Name LIKE'" + textBox5.Text + "%'";
而且效果很好。但这不适用于"年龄"字段:
bindingSource.Filter = "Age LIKE'" + Convert.ToInt32(textBox5.Text) + "%'";
还有其他人知道如何对"生日"字段执行相同的操作吗?
对于数字列,请使用等于 =
。 如果您确实想按部分值搜索Age
,则需要先将其转换为字符值。
studentsBindingSource.Filter = "CAST([Age] AS varchar) LIKE '" + Convert.ToInt32(textBox3.Text) + "%'";`
请务必首先验证用户是否在 textBox3 中输入了数值。
请注意,我只是直接回答您的问题。 使用参数化查询将防止 SQL 注入攻击,并且应该是处理它的首选方式。