我正在更新一个现有的应用程序,它使用工厂来构建预准备语句,然后在以后执行它们,这对系统的其余部分起作用,但我的任务是添加一个使用一个语句的语句的调用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();
答案 0 :(得分:2)
不要使用NTEXT
,是deprecated type。如果您的数据库有NTEXT
列,请将其更改为VARBINARY(MAX)
。使用-1表示MAX
类型参数长度:(...,SqlDbType.Varbinary, -1)
。
答案 1 :(得分:0)
您可以将其设置为传递给@File参数的数据的长度吗?这只是一个建议。