【发布时间】:2010-04-19 07:50:11
【问题描述】:
我正在使用以下查询插入一些大文本数据:
internal static string InsertStorageItem =
"insert into Storage(FolderName, MessageId, MessageDate, StorageData) values ('{0}', '{1}', '{2}', @StorageData)";
我用来执行这个查询的代码如下:
string content = "very very large data";
string query = string.Format(InsertStorageItem, "Inbox", "AXOGTRR1445/DSDS587444WEE", "4/19/2010 11:11:03 AM");
var command = new SqlCeCommand(query, _sqlConnection);
var paramData = command.Parameters.Add("@StorageData", System.Data.SqlDbType.NText);
paramData.Value = content;
paramData.SourceColumn = "StorageData";
command.ExecuteNonQuery();
但在最后一行我收到以下错误:
System.Data.SqlServerCe.SqlCeException 未被用户代码处理
Message=从一种数据类型转换为另一种数据类型时数据被截断。 [ 函数名称(如果已知) = ]
Source=SQL Server Compact ADO.NET 数据提供程序
H结果=-2147467259
本机错误=25920
堆栈跟踪:
在 System.Data.SqlServerCe.SqlCeCommand.ProcessResults(Int32 小时)
在 System.Data.SqlServerCe.SqlCeCommand.ExecuteCommandText(IntPtr& pCursor,Boolean& isBaseTableCursor)
在 System.Data.SqlServerCe.SqlCeCommand.ExecuteCommand(CommandBehavior 行为,String 方法,ResultSetOptions 选项)
在 System.Data.SqlServerCe.SqlCeCommand.ExecuteNonQuery()
在 Chithi.Client.Exchange.ExchangeClient.SaveItem(项目项,文件夹 parentFolder)
在 Chithi.Client.Exchange.ExchangeClient.DownloadNewMails(文件夹文件夹)
在 Chithi.Client.Exchange.ExchangeClient.SynchronizeParentChildFolder(WellKnownFolder wellknownFolder,文件夹 parentFolder)
在 Chithi.Client.Exchange.ExchangeClient.SynchronizeFolders()
在 Chithi.Client.Exchange.ExchangeClient.WorkerThreadDoWork(对象发件人,DoWorkEventArgs e)
在 System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
在 System.ComponentModel.BackgroundWorker.WorkerThreadStart(对象参数)
内部异常:
现在我的问题是我应该如何将这么大的数据插入到 sqlce db 中?
问候,
阿宁迪亚·查特吉
【问题讨论】:
-
StorageData字段是如何定义的?
-
db中StorageData的db数据类型为ntext。
标签: c# .net database sql-server-ce