2010-11-19 37 views
1

我正在更新使用工廠構建預準備語句的現有應用程序,然後稍後執行它們,這適用於系統的其餘部分,但我的任務是添加對使用NText的語句的調用,但我無法弄清楚如何正確準備語句。我得到一個運行時錯誤「SqlCommand.Prepare方法要求所有可變長度參數有明確設置非零大小」。但我不知道用什麼值長度如何準備包含NText(clob)參數的ADO.NET語句

強制性代碼示例:

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

請勿使用NTEXT,是deprecated type。如果您的數據庫有NTEXT列,則將其更改爲VARBINARY(MAX)。使用-1表示MAX類型參數長度:(...,SqlDbType.Varbinary, -1)

0

你可以將其設置爲你傳遞到@file參數數據的長度?這只是一個建議。