C# 大数据的哪种数据类型和哪种插入参数

C# 大数据的哪种数据类型和哪种插入参数,c#,sql-server,sql-server-ce,dataadapter,C#,Sql Server,Sql Server Ce,Dataadapter,在这里,我的数据记录中的一个字段可以超过8000个字符的nvarchar限制,并寻找更大的数据类型,例如大约9000个字符,有什么想法吗? 起初,我使用的是NvarChar(8000),在找到一些可以通过此边界后,我使用了NText 为了了解接下来会发生什么,使用Entity Framework,它似乎可以按照预期完成任务,而无需定义任何插入语句和数据适配器,在编程过程中,系统更改为数据适配器,我应该使用Insert命令完成任务,现在定义的参数如下所示: cmdIns.Parameters.Ad

在这里,我的数据记录中的一个字段可以超过8000个字符的nvarchar限制,并寻找更大的数据类型,例如大约9000个字符,有什么想法吗? 起初,我使用的是
NvarChar(8000)
,在找到一些可以通过此边界后,我使用了
NText
为了了解接下来会发生什么,使用Entity Framework,它似乎可以按照预期完成任务,而无需定义任何
插入语句
数据适配器
,在编程过程中,系统更改为数据适配器,我应该使用Insert命令完成任务,现在定义的参数如下所示:

cmdIns.Parameters.Add("@story", SqlDbType.NText, 16, "Story")
当使用
EF
时,16的限制似乎会自动增加,但不与
数据适配器一起使用(它只插入16个字符的数据),
真的不知道(不记得了)EF测试是否通过了,即使是大于8000的项目?
如果是这样,我很好奇原因

这种情况决定了合适的数据类型,以及在这个大数据字段的插入点上使用的等效工作参数

注意:此处使用SQL Server CE


编辑:

对不起,当时我得走了, 应该使用的数据类型是
NTEXT
,此处没有其他选择 但是定义插入语句和参数**
有点麻烦, 不幸的是,所建议的方法中没有一种能像我给出的那篇文章那样达到预期的效果

  • 如果不定义长度,将产生错误(运行时)
  • 使用AddWithValue无法使用DataAdapter中的数据适配器并批量插入。 也许我必须把它放在另一个问题中,但这是这个问题的一部分,这里的工作答案可能是完整的。 有什么想法吗

当您要通过指定参数的名称和值来添加参数时,请使用AddWithValue。类似于这个命令.Parameters.AddWithValue(“@story”,story)

如果我正确理解了你的问题,你可以这样做,省去尺寸,因为这是不必要的:

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

你就不能不说尺寸吗?我认为有一个重载只接受名称、类型和值。似乎它应该是正确的,我想这样测试,但忘了那样测试,但我认为我应该创建一个新的参数实例,在它的构造函数中传递2参数,忽略大小。这是我的想法,我正在尝试,无论如何,如果你确定给出的方法,请发布并给出定义,我会标记它。+1,这个问题的第一个参与者,谢谢,似乎还有2个答案比这个想法更接近最佳实践,将在最后一次响应之前尝试所有方法。它将在运行时给出错误什么样的错误?我刚刚检查过,我一直在使用上面显示的代码。cmdIns是什么类型的(我假设是SqlCommand)?据说值不能为空,也许这也是SQL CE的另一个错误!现在,当您提到SQL CE时,我记得您必须以与SQL Server不同的方式对待空值。如果我没记错的话,如果您的任何参数为null,您必须显式地分配
DBNull.Value
。在类似的情况下,这是我长期以来首选的方法,但在这里它不起作用