问题描述
我更新现有的应用程序,它使用一个工厂建prepared语句,然后再执行它们,其中工程系统的休息,但我一直在负责将调用一个声明它采用了ntext和我想不出如何正确prepare声明。我得到的运行时错误的SqlCommand。prepare方法要求所有可变长度的参数有一个明确设置非零的尺寸。但我不知道要使用的长度什么价值
强制性code样品:
的SqlCommand更新=新的SqlCommand(更新Log.Response_File_Log+
集文件@file =+
DateFileReceived = GETDATE()+
WHERE的runid = @runId,_connection);
update.Parameters.Add(新的SqlParameter(@文件,SqlDbType.NText));
update.Parameters.Add(新的SqlParameter(@的runid,SqlDbType.Int));
更新prepare()。
不要使用 NTEXT
,是的。如果您的数据库有一个 NTEXT
列其更改为 VARBINARY(MAX)
。使用-1 MAX
类型参数的长度:(...,SqlDbType.Varbinary,-1)
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
Obligatory 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();
Don't use NTEXT
, is a deprecated type. If your database has an NTEXT
column change it to VARBINARY(MAX)
. Use -1 for MAX
type parameters length: (...,SqlDbType.Varbinary, -1)
.
这篇关于如何prepare ADO.NET的声明,其中包括一个NTEXT(CLOB)参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!