任何人都可以帮助我选择查询的语法吗?

时间:2010-05-10 05:08:14

标签: c# sql

我正在做

string sql = "select * from publisher where title like "'"+tbproperty.text+";

但它不起作用!

问候..

3 个答案:

答案 0 :(得分:9)

使用SqlParameter

SqlCommand cmd = new SqlCommand("select * from publisher where title like @title");
cmd.Parameters.AddWithValue("@title", tbProperty.Text);

如果您需要在参数中添加更多内容,请执行以下操作(例如:输出参数):

SqlParameter param = new SqlParameter("@param ", SqlDbType.NVarChar, 250) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(param);

这意味着您不需要构建字符串本身并停止SQL注入。

答案 1 :(得分:4)

使用LIKE,如果您希望开始/结束匹配,则需要一些通配符,例如'%',而我假设用户没有添加那些;但是 - 重要don't concatenate user input。永远。你想要的东西:

sql = "select * from publisher where title like @arg";

@arg定义为参数,其值类似于:

cmd.Parameters.AddWithValue("@arg", "%" + tbproperty.text + "%");

答案 2 :(得分:0)

校正..

string sql = "select * from publisher where title like '" + tbproperty.text + "'";