当前位置: 首页 > 知识库问答 >
问题:

NPGSQL4.0没有明确返回字典参数

何高歌
2023-03-14

当我用字典参数插入表的值,并且发生了一些异常时,npgsql不会清晰地返回SQL查询。示例:

Dictionary<string, object> params = new Dictionary <string, object>();
string sql: "insert into bla values (:item1)";
params.Add ("item1", 'bla bla');
ExecuteNonQuery (sql);
using (NpgsqlCommand cmd = new NpgsqlCommand("insert into foo values (:TEST)",conn))
            {
                cmd.Parameters.Add(new NpgsqlParameter<string>("TEST",
                  NpgsqlDbType.Varchar));
                cmd.Parameters[0].Value = "null \0 null";

                cmd.ExecuteNonQuery();
            }
        }

数据库异常:22021:编码“UTF8”的字节序列无效:0x00。Query==>插入foo值($1)

在使用NPGSQL2.2.5之前,我遇到了如下错误:

数据库异常:22021:编码“UTF8”的字节序列无效:0x00。Query==>insert into foo值('null\0 null')

共有1个答案

宗政德宇
2023-03-14

NPGSQL2.x(非常旧)通过将参数内联到SQL查询(“客户端参数绑定”)来发送参数,但在准备命令时除外。NPGSQL3.x切换到总是在SQL本身之外以二进制格式发送参数,这在性能、安全性等方面都更优越。这就是为什么异常消息不包括实际参数值的原因。

注意,在某些情况下,在异常消息中包含参数值可能被认为是不安全的。

 类似资料:
  • 问题内容: 我使用mysql 5.7 我想将联接表的结果串联到单列中。我使用包裹在函数中的函数。这是查询 列包含来自联接表的数据。数据已正确检索,但问题是列未转换为正确的JSON。 如您所见,最后有点“切”。 我也尝试过,但是现在它不能转换为正确的数组。它看起来像字符串太大,不适合列。有办法解决吗? 更新 问题必须出在不适合列的st大小中。我尝试从联接表中选择较少的列,并且它可以正常工作。也许有一

  • 意识到递归是我的弱点之一后,我找到了一个网站,迫使你递归地解决简单问题(https://codestepbystep.com/problem/view/cpp/recursion/digitsSorted?problemsetid=15) 我坚持的一个(digitalsSorted,数字5)如下:调用一个传递数字作为参数的函数。如果该数字中的数字按递增顺序排序,则函数返回True,否则返回Fals

  • 我是一个新手Python程序员,我有一个问题加载pd.read_excel()函数的xlsx工作簿。熊猫read_excel留档说,指定'sheet_name=无'应该返回"所有工作表作为DataFrames的字典",但是我得到了一个空字典回来: 返回: 当我尝试在字典中打印工作表名称时: 返回: 我不清楚为什么输出字典中没有列出工作表。任何提示都非常感谢。

  • 我有一个表格和一个表格。包含所有课程的列表,包含教授/协助该课程的志愿者列表。 我想写一个查询,返回没有任何志愿者分配给它的所有课程的列表。这就是正在发生的事情: 以下所有查询都返回 course_id 3 course_id 4 course_id 5 为什么course_id 1(正确)被遗漏,而course_id 3却不是??? 同样的问题,但没有一个解决方案对我有效: 左侧外部连接轨4

  • 问题内容: 我有一个我以前从未见过的问题,猫鼬的findByIdAndUpdate没有在回调中返回正确的模型。 这是代码: 数据库中的原始文档如下所示: 进入的updateObj如下所示: 从回调返回的模型与原始模型相同,而不是updatedObj。如果我查询数据库,它已正确更新。它只是没有从数据库中返回。 这感觉像是一个“愚蠢的用户”错误,但我看不到它。任何想法表示赞赏。 问题答案: 在Mong

  • 我保留了一份按“顺序”排列的产品清单。当我试着从房间里拿一份产品清单的时候。我得到以下错误。但我做了一个TypeConvertor。会有什么错误呢? 订单 产品 命令道 转换器 错误 java:53:错误:查询返回的列在com.vepe.navigation.model.entity.product中没有字段[id,orderId,name,pathImage,price,priceDiscoun