我目前正在尝试更新npgsql。
我有一个使用旧的npgsql版本完美运行的方法,但是当我使用新的npgsql 3.2.6运行它时,它失败并出现异常:
42601:语法错误在或附近" $ 1"
这是我的代码,传递给控制台应用程序,它重现了这个错误:
Console.WriteLine("Start");
NpgsqlConnection con = null;
NpgsqlCommand cmd = null;
try
{
con = new NpgsqlConnection("Host=...;Port=...;Username=...;Password=...;Database=...");
con.Open();
cmd = new NpgsqlCommand("SET APPLICATION_NAME=@app_name;", con);
cmd.Parameters.AddWithValue("@app_name", "test");
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
if (cmd != null)
cmd.Dispose();
if (con != null)
con.Dispose();
}
Console.WriteLine("End");
Console.ReadKey();
我还注意到,如果我将查询设置为SET APPLICATION_NAME='@app_name';
,它就可以正常工作。但它应该没有' ...我也尝试用NpgsqlDbType
指定变量类型,但仍然没有运气。
任何人都知道我做错了什么?
修改
行cmd.ExecuteNonQuery();
抛出异常。