如何准备包含 NText (clob) 参数的 ADO.NET 语句
我正在更新一个现有的应用程序,该应用程序使用工厂来构建准备好的语句,然后稍后执行它们,这适用于系统的其余部分,但我的任务是添加对使用 的语句的调用NText
,我不知道如何正确准备该声明。我收到以下运行时错误:
SqlCommand.Prepare 方法要求所有可变长度参数都具有显式设置的非零大小。
但我不确定 Length
使用什么值?
代码示例:
SqlCommand update = new SqlCommand("UPDATE Log.Response_File_Log " +
"SET File = @File " +
", DateFileReceived = GETDATE() " +
"WHERE RunID = @RunID", _connection);
update.Parameters.Add(new SqlParameter("@File", SqlDbType.NText));
update.Parameters.Add(new SqlParameter("@RunID", SqlDbType.Int));
update.Prepare();
I'm updating an existing application which uses a factory to build prepared statements, and then execute them later, which works for the rest of the system, but I've been tasked with adding a call to a statement which uses an NText
, and I cannot figure out how to properly prepare the statement. I am getting a runtime error of:
SqlCommand.Prepare method requires all variable length parameters to have an explicitly set non-zero Size.
but I'm not sure what value to use for the Length
?
Code sample:
SqlCommand update = new SqlCommand("UPDATE Log.Response_File_Log " +
"SET File = @File " +
", DateFileReceived = GETDATE() " +
"WHERE RunID = @RunID", _connection);
update.Parameters.Add(new SqlParameter("@File", SqlDbType.NText));
update.Parameters.Add(new SqlParameter("@RunID", SqlDbType.Int));
update.Prepare();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不要使用
NTEXT
,它是已弃用的类型。如果您的数据库有NTEXT
列,请将其更改为VARBINARY(MAX)
。使用 -1 表示MAX
类型参数长度:(...,SqlDbType.Varbinary, -1)
。Don't use
NTEXT
, is a deprecated type. If your database has anNTEXT
column change it toVARBINARY(MAX)
. Use -1 forMAX
type parameters length:(...,SqlDbType.Varbinary, -1)
.您可以将其设置为传递给 @File 参数的数据的长度吗?这只是一个建议。
Can you set it to the length of the data you're passing in to @File parameter? This is just a suggestion.