C# 使用c在postgresql数据库中插入错误#

C# 使用c在postgresql数据库中插入错误#,c#,.net,sql,postgresql,C#,.net,Sql,Postgresql,我想在表的字段中插入字符串'xxx'xxx'。“角色”中的问题。 如何插入此字符?您需要复制单引号: insert into foo (col_name) values ('xxx''xxx'); 但是,您应该研究准备好的语句,这些语句不仅可以使类似的事情变得更容易,而且还可以保护您免受SQL注入(我不知道C#,所以我无法帮助您了解详细信息)。您需要复制单引号: insert into foo (col_name) values ('xxx''xxx'); 但是,您应该研究准备好的语句,这些

我想在表的字段中插入字符串'xxx'xxx'。“角色”中的问题。
如何插入此字符?

您需要复制单引号:

insert into foo (col_name)
values
('xxx''xxx');

但是,您应该研究准备好的语句,这些语句不仅可以使类似的事情变得更容易,而且还可以保护您免受SQL注入(我不知道C#,所以我无法帮助您了解详细信息)。

您需要复制单引号:

insert into foo (col_name)
values
('xxx''xxx');

但是,您应该研究准备好的语句,这些语句不仅可以使类似的事情变得更容易,而且还可以保护您免受SQL注入(我不知道C#,所以我无法帮助您了解详细信息)。

如果您直接插入

INSERT INTO tableName (colName) VALUES ('xxx''xxx')
但如果您在
C#
上执行此操作,请使用参数化查询

string connStr = "connection String here";
string val = "xxx'xxx";
string query = "INSERT INTO tableName (colName) VALUES (:val)";
using(NpgsqlConnection conn = new NpgsqlConnection(connStr))
{
    using(NpgsqlCommand comm = new NpgsqlCommand())
    {
        comm.Connection = conn;
        comm.CommandText = query;
        NpgsqlParameter p = new NpgsqlParameter("val", NpgsqlDbType.Text);
        p.value = val;
        comm.Parameters.Add(p);
        try
        {
            conn.Open();
            comm.ExecuteNonQuery();
        }
        catch(NpgsqlException e)
        {
            // do something with
            // e.ToString();
        }
    }
}

如果直接插入,则将
单引号加倍

INSERT INTO tableName (colName) VALUES ('xxx''xxx')
但如果您在
C#
上执行此操作,请使用参数化查询

string connStr = "connection String here";
string val = "xxx'xxx";
string query = "INSERT INTO tableName (colName) VALUES (:val)";
using(NpgsqlConnection conn = new NpgsqlConnection(connStr))
{
    using(NpgsqlCommand comm = new NpgsqlCommand())
    {
        comm.Connection = conn;
        comm.CommandText = query;
        NpgsqlParameter p = new NpgsqlParameter("val", NpgsqlDbType.Text);
        p.value = val;
        comm.Parameters.Add(p);
        try
        {
            conn.Open();
            comm.ExecuteNonQuery();
        }
        catch(NpgsqlException e)
        {
            // do something with
            // e.ToString();
        }
    }
}
在c中#如果要插入单引号,可以通过替换原始值来实现:

string x = "xxx'xxx";
string replacedText = x.Replace("'","''");
当插入以防止sql注入时,请始终使用参数:

 myCommand.CommandText = "INSERT INTO TableName (x) VALUES (@x)";
 myCommand.Parameters.Add("@x", x);
在c#中,如果要插入单引号,可以通过替换原始值来执行此操作,以便:

string x = "xxx'xxx";
string replacedText = x.Replace("'","''");
当插入以防止sql注入时,请始终使用参数:

 myCommand.CommandText = "INSERT INTO TableName (x) VALUES (@x)";
 myCommand.Parameters.Add("@x", x);

(:val)@Sam1我认为
也受支持。(:val)@Sam1我认为
也受支持。为什么接近投票,这是一个简单、直接和有效的问题,答案简单。为什么接近投票,这是一个简单、直接和有效的问题,答案简单。