如何准备包含NText(clob)参数的ADO.NET语句

时间:2010-11-19 00:53:27

标签: c# sql-server ado.net blob

我正在更新一个现有的应用程序,它使用工厂来构建预准备语句,然后在以后执行它们,这对系统的其余部分起作用,但我的任务是添加一个使用一个语句的语句的调用NText,我无法弄清楚如何正确准备声明。我收到运行时错误“SqlCommand.Prepare方法要求所有可变长度参数具有明确设置的非零大小。”但我不确定长度

的值是多少

强制性代码示例:

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();

2 个答案:

答案 0 :(得分:2)

不要使用NTEXT,是deprecated type。如果您的数据库有NTEXT列,请将其更改为VARBINARY(MAX)。使用-1表示MAX类型参数长度:(...,SqlDbType.Varbinary, -1)

答案 1 :(得分:0)

您可以将其设置为传递给@File参数的数据的长度吗?这只是一个建议。