次のコードを使用して SQL サーバー データベースにクエリを実行すると、予期しない結果が返されます。一部の文字が「?」に変換されます 文字。クエリに使用しているコードは次のとおりです。
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 行 1 列のデータセットが生成されます。(文字コード)、10084 の代わりに。
インタラクティブなデバッグは、値が正しくエンコードされていることを示していtheQuery
ます。