postgresql 如何在C#中的Quotes中使用Quotes,而不让它出错[重复]

a14dhokn  于 2023-11-18  发布在  PostgreSQL
关注(0)|答案(2)|浏览(128)

此问题在此处已有答案

Escape double quotes in a string(9个答案)
Escape single quote in sql query c#(7个答案)
9天前关闭
我试图查询一些数据从postgres服务器使用C#。
这是我目前使用的代码:

namespace WpfApp1
    {
        class postgresDB
        {

            public void Init_database()
            {

                NpgsqlConnection conn = new NpgsqlConnection("Server=FS01;User Id=postgres;" +
                                        "Password=pwd;Database=postgres;");
                conn.Open();
                Debug.WriteLine("DB opened");

                NpgsqlCommand cmd = new NpgsqlCommand("SELECT * FROM 'Users';", conn);

                NpgsqlDataReader dr = cmd.ExecuteReader();

                while (dr.Read())
                    Console.Write("{0}\n", dr[0]);

                conn.Close();
                Debug.WriteLine("DB closed");
            }

        }
    }

字符串
我遇到的问题是SELECT查询错误,错误为:42601: syntax error at or near "'Users'"
我首先尝试这样做是因为postgres表名需要加引号,所以它不会检查名称的大小写字母。如果我把名称加引号,它只会跳过它,并找到表。

kxeu7u2r

kxeu7u2r1#

string t = "SELECT * FROM \"Users\";";

字符串

string t2 = @"SELECT * FROM ""Users"";";


应该工作

rmbxnbpk

rmbxnbpk2#

你应该能够使用\”
在我遇到的大多数语言中,\被用作转义字符。你可以用它来在引号中使用引号,或者用\n添加一个新行,用\t添加一个制表符等等。
有趣的是,如果你想在字符串中使用\,你需要使用\

相关问题