我正在使用以下代码查询SQL Server数据库,并获得一些意外结果。我的一些角色被转换为'?'字符。我用来查询的代码是:
var theConnectionString = @"Data Source=my-sql-server;Initial Catalog=My_Database;Integrated Security=True";
var theQuery = @"select '❤' as panda";
var dataSet = new DataSet();
using (SqlConnection connection = new SqlConnection(theConnectionString))
{
connection.Open();
var command = new SqlCommand(theQuery, connection);
foreach (var param in parameters.Keys)
{
command.Parameters.AddWithValue(param, parameters[param]);
}
SqlDataAdapter adapter = new SqlDataAdapter(command);
adapter.Fill(dataSet);
}
return dataSet;
这会产生一列1列的数据集,其值为“?” (字符代码),而不是10084。
交互式调试向我显示值已在theQuery
中正确编码。