【发布时间】:2013-08-13 11:36:00
【问题描述】:
我编写了这个小函数来对 SQL Server 2005 数据库进行查询:
public DataSet Query(string query, Dictionary<string, string> parameters)
{
DataSet result = new DataSet();
using (SqlDataAdapter adapter = new SqlDataAdapter(query, sqlConnection))
{
adapter.SelectCommand.CommandType = CommandType.Text;
adapter.SelectCommand.CommandText = query;
foreach (KeyValuePair<string, string> pair in parameters)
{
adapter.SelectCommand.Parameters.Add(pair.Key, SqlDbType.Text).Value = pair.Value;
}
adapter.Fill(result);
}
return result;
}
当我这样称呼它时:
Query("SELECT * FROM Database.Tab.le WHERE somecol LIKE '%1%'", new Dictionary<string, string>() { });
我得到了很多结果。但我想要的是这样称呼它:
Query("SELECT * FROM Database.Tab.le WHERE somecol LIKE '@number'", new Dictionary<string, string>() { {"@number", "%1%"} });
然而,这会返回零行。我想知道为什么以及如何解决它。
【问题讨论】:
-
将
{"number", "%1%"}更改为{"@number", "%1%"}- 你忘记了 @ 符号。
标签: c# sql sql-server sql-server-2005