ExecuteNonQuery
(およびDatabaseFactory.CreateDatabase()
MS Practices Enterprise Libraryから)8000文字以上(Webページから送信)を挿入しようとしています。ストアド プロシージャは、パラメータを として定義しますVARCHAR(MAX)
。コラムはVARCHAR(MAX)
. 理論的には、2GB のデータを渡すことができるはずです。
8000 を超えるデータを渡すにはどうすればよいですか? ブレークポイントを設定しましたstring.Length
が、実際には 8K を超えています。
public static void UpdateTerms(string terms)
{
Database db = DatabaseFactory.CreateDatabase();
db.ExecuteNonQuery("uspUpdateTerms", terms);
}
ストアド プロシージャ:
ALTER PROCEDURE [dbo].[uspUpdateTerms]
@Terms VARCHAR(MAX)
AS
SET NOCOUNT ON
INSERT INTO tblTerms(Terms)
VALUES(@Terms)
表 (すべてが であることを示すためvarchar(max)
):
CREATE TABLE [dbo].[tblTerms](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Terms] [varchar](max) NULL,
[DateUpdated] [datetime] NULL,
.
アップデート:
コードを変更したところ、これは機能しているように見えますが、違いはわかりません。
public static void UpdateTerms(string terms)
{
Database db = DatabaseFactory.CreateDatabase();
DbCommand cmd = db.GetStoredProcCommand("uspUpdateTerms");
db.AddInParameter(cmd, "Terms", DbType.String, terms);
db.ExecuteNonQuery(cmd);
}