2012-07-08 95 views
0

這裏我的數據記錄中的一個字段可以傳遞nvarchar的8000個字符的限制,並尋找相當大的數據類型,例如約9000個字符,任何想法? 起初我用NvarChar(8000),發現了一些後,可以通過這個界面我用NText 看看接下來會發生什麼,實體框架似乎它的預期沒有定義任何Insert statementData Adapter,它可以做這項工作的系統編程的過程中變更爲數據適配器,我應該做一個插入命令的工作,現在定義的參數是這個樣子:哪些數據類型和哪些插入參數適用於大數據

cmdIns.Parameters.Add("@story", SqlDbType.NText, 16, "Story") 

似乎的使用EF使用,同時會自動增加的限制,但不與Data Adapter而且它只是我插入16個字符的數據), 真的不知道(不記得)是否EF的測試通過了甚至大於的項目?如果是這樣,我很好奇原因。

這種情況決定了正確的數據類型,它的等效工作參數將用於此大型數據字段的插入點。

注:這裏的SQL Server CE是用於


編輯:

對不起,我不得不去在那個時候, 應使用的數據類型是NTEXT在這裏沒有其他選擇 但定義**insertion Statement and parameter**有點麻煩,不幸的是沒有建議的方法可以做所需的工作類似於我ga五個。

  • 沒有定義長度會給出錯誤(運行時)!
  • 並使用AddWithValue無法使用DataAdapter並進行批量插入。 也許我必須把它放在另一個問題,但這是這個問題的一部分,這裏的工作答案可能是完整的。 任何想法?
+0

你不能迴避,說明大小?我認爲只有接受名稱,類型和價值纔有重載。 – Gorgsenegger 2012-07-08 06:58:30

+0

似乎應該是正確的,我想以這種方式進行測試,但忘記測試這種方式,但我認爲我應該創建一個新的參數實例,並在其構造函數中傳遞2參數並省略說明大小。 – Sypress 2012-07-08 07:02:05

+0

這是我的想法,我正在嘗試,無論如何,如果您確信所提供的方法,請張貼並給出定義,我會標記它。 – Sypress 2012-07-08 07:07:35

回答

1

如果我理解正確你的問題,你應該罰款做這樣的事情,忽略的大小沒有必要:

cmdIns.Parameters.Add(new SqlParameter("story", SqlDbType.NText) 
{ 
    Value = yourVariable; 
}); 
+0

+1,此問題的第一位參與者,謝謝,似乎還有其他兩個答案更接近最佳做法比這個想法,在最後的迴應之前會嘗試所有的。 – Sypress 2012-07-08 07:35:54

+0

它會在運行時給出錯誤 – Sypress 2012-07-09 04:58:42

+0

什麼樣的錯誤?我剛剛檢查過,並且始終使用上面顯示的代碼。什麼類型的cmdIns(我假設SqlCommand)? – Gorgsenegger 2012-07-09 07:49:53

1

無論何時要通過指定參數的名稱和值來添加參數,請使用AddWithValue。像這樣的命令.Parameters.AddWithValue(「@故事」,故事);

+0

+1並感謝您的信息 – Sypress 2012-07-08 07:32:39

+0

這是我在類似情況下長時間使用的首選方法,但在此處不起作用 – Sypress 2012-07-09 04:58:20

相關問題