我有一个到 SQL Server 数据库(版本 10.50.4000)的功能齐全(安全)的会话。这存储在公共变量中:
SqlConnection conn = new SqlConnection();
我只想运行SELECT
查询。对于其他任何事情,用户帐户都没有任何权利。
查询仅使用一个用户条目构建,该用户条目被插入到一个简单的文本框中。
不幸的是,我不能告诉你原来的命令文本。因此,我为您简化了:
function print_users(string filtervalue)
{
SqlCommand cmd = null;
cmd = new SqlCommand("SELECT users From groups WHERE group_name LIKE '%@fv%'", this.conn)
cmd.Parameters.Add("@fv", SqlDbType.NVarChar);
cmd.Parameters["@fv"].Value=filtervalue;
rdr = cmd.ExecuteReader();
while(rdr.Read())
{
//Do something with the answer from the DB
}
}
但这并不能解决问题。我也试过AddWithValue
,但我没有运气。
在线创建停止点时,@fv
应该在哪里替换,我可以逐行浏览代码。而且我可以看到@fv
应该替换的命令被正确处理。但是@fv
没有被替换(或者至少我在调试控制台中看不到替换)。
我究竟做错了什么?
编辑:
谢谢您的回复。省略单引号( ' )就可以了。
而且我还了解到这不是字符串替换。谢谢你。
一句话:连接不是一直打开的。当不再需要它时,它会立即关闭;并在需要时重新建立——我只是忘了把它写到我的示例代码中。
再次:感谢您的帮助!