gpt4 book ai didi

c# - 当我在 SQL Server 上插入 ~81192 个字符时,nvarchar(max) 字段为空

转载 作者:太空宇宙 更新时间:2023-11-03 14:07:47 25 4
gpt4 key购买 nike

当我尝试将新记录插入名为 ProductDetail( nvarchar(MAX)) 的列时。我插入了 ~81192 个字符。然后该列变空了。我插入了小值然后它插入好吗?我该如何解决这个问题?

FakeDtbDataContext dt=new FakeDtbDataContext();
...

string sql = "Insert Into SanPham(IDNhomSP,ChiTiet) Values('" + prDetail + "','" + FCK.Value + "')";
dt.ExecuteCommand(sql);

SQL 版本为 10.50.1600。

我调试过,它有值(value)。我使用远程 SQL Server 运行脚本。

我已经使用 LinQ 语句插入,LinQ 本身可能会阻止注入(inject)。该列仍然为空:(

var sanPham = new SanPham
{
IDNhomSP = nhomhang,
ChiTiet = FCK.Value
};
dt.SanPhams.InsertOnSubmit(sanPham);
dt.SubmitChanges();

最佳答案

也许不是解决方案,但始终使用参数化查询!如果 prDetailFCK.Value 包含撇号,则您的 sql 代码会中断,更糟糕的是,您的代码会针对 SQL injection :) 打开。 !

像这样:

string sql = "Insert Into SanPham(IDNhomSP,ChiTiet) Values(@prDetail, @FCKValue)";

并在执行前将您的 prDetail 和 FCK.Value 的值作为参数添加到命令中。

关于c# - 当我在 SQL Server 上插入 ~81192 个字符时,nvarchar(max) 字段为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8864234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com