none
如何透過 stored procedure 把長文字資料儲存於 ntext 格式的欄位中? RRS feed

  • 問題

  • 使用 C# 呼叫sql server中已經寫好的stored procedure,想把一些長文字資料(約 10MB 以上)寫入table 中的 ntext
    欄位,可是無法順利寫入,但是如果是較短的資料卻可以順利寫入該資料庫表格,請問該如何解決?

    我是使用 SqlClient 建立 SqlConnection 與 SqlCommand 來呼叫 stored procedure。
    2006年4月22日 上午 03:12

解答

所有回覆

  • 1. 使用 Parameter 參數物件 .

    2. Parameter 的 Size 設定為資料的長度 .

    2006年4月22日 下午 12:21
    版主
  • 我有設定parameter。
    但使用的parameter的datatype為 text or ntext 時,將無法指定長度,而且對於很長的文字字串,也沒有辦法正確傳入,最後儲存在資料庫中的只有原本長文字的一部份而已。
    2006年4月22日 下午 01:19
  • Hi,

     能否多提供一些資訊,例如 :

      1) 有沒有 exception 發生?
      2)  "原本長文字的v一部份", 每次測試時的長度都固定嗎? 可存入幾個字?
      3) 有沒有透過 SQL Profiler 觀察進到 SQL Serer 時的指令為何?
     
    2006年4月22日 下午 02:31
  •  Phanix 寫信:
    我有設定parameter。
    但使用的parameter的datatype為 text or ntext 時,將無法指定長度,而且對於很長的文字字串,也沒有辦法正確傳入,最後儲存在資料庫中的只有原本長文字的一部份而已。

    這倒很有意思了,因為我用下列的方法,是可以把文字資料全部存到 ntext 欄位的,但你為什麼不能指定長度 ... 存疑中

    SqlParameter param = new SqlParameter("@textcontent");

    param.Type = SqlDbType.NText;
    param.Size = content.Length; // 假設 content 變數中包含了文字全部內容
    param.Direction = ParameterDirection.Input;

    Command.Parameters.Add(param);

    2006年4月24日 上午 03:31
    版主