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