You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在.NET C#的SQL Server INSERT查询中如何正确使用前缀N?

问题修正方案

你现有写法存在两个核心错误:

  • 直接写N'+@description+'属于硬编码字符串拼接,根本没有调用你传入的参数值,执行后会直接把+@description+作为内容存入数据库,完全不符合预期
  • N前缀仅用于SQL语句里直接写Unicode字符串字面量的场景(比如你给出的UPDATE示例里硬编码缅文的写法),参数化查询不需要在SQL语句中给参数加N''包裹

修正后的INSERT语句代码

sqlUtil.SqlDataUpdate(false, (@"INSERT INTO Incident_Info (incidentid, incidentdate, incidenttime, description, Salesmen_id, name, phone, email, address, cost, currency, solution, status)
VALUES (@incidentid, @incidentdate, @incidenttime, @description, @salesmenid, @name, @phone, @email, @address, @cost, @currency, @solution, @status)"), SysController.dicParams);

额外注意事项

  • 必须确保你的Incident_Info表中description、name、address、solution这几个存储非英文字符的字段类型是NVARCHAR/NCHAR/NTEXT这类Unicode存储类型,如果字段本身是VARCHAR类型,就算写法正确也会丢失Unicode编码
  • 确保SysController.dicParams中添加上述几个字符串参数时,指定的数据库类型为对应Unicode类型(比如SqlDbType.NVarChar),不要用非Unicode的SqlDbType.VarChar

内容的提问来源于stack exchange,提问作者izoku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:00:01