[哭]使用Data Access 2 插入Ntext类型数据时SqlParameter不指定类型的问题 ,请为我解惑

xiahouwen 2005-10-10 01:19:41

原来的代码


SqlHelper.ExecuteNonQuery(connectionString, CommandType.StoredProcedure,
FullyQualifiedSprocName("P_InsertNtextData"),
new SqlParameter("@Id", f.Id),
new SqlParameter("@NtextData",f.Data));

如果 f.Data过长,就莫名其妙的异常,

---------------------------

---------------------------
当前命令发生了严重错误。应放弃任何可能产生的结果。
---------------------------
确定
---------------------------

---------------------------

---------------------------
常规网络错误。请检查您的网络文档。
---------------------------
确定
---------------------------


Google baidu 都翻了个底朝天,也没个能安慰我的信息。
试验了一下午,最后试出来写个测试字符串"aaaa"就能插入
尝试了如下代码


SqlParameter ntext = new SqlParameter("@NtextData",SqlDbType.NText);
ntext.Value = f.Data;
SqlHelper.ExecuteNonQuery(connectionString, CommandType.StoredProcedure,
FullyQualifiedSprocName("P_InsertNtextData"),
new SqlParameter("@Id", f.Id),
ntext);

成功,怎么也想不通这换汤不换药的方法为何能够成功,
翻msdn,
打自己一巴掌


获取或设置参数的 SqlDbType。

[Visual Basic]
Public Property SqlDbType As SqlDbType

[C#]
public SqlDbType SqlDbType {get; set;}


属性值
SqlDbType 值之一。默认值为 NVarChar。

然而我又看到另外一个构造器的重载这样说明


[Visual Basic]
Public Sub New( _
ByVal parameterName As String, _
ByVal value As Object _
)

[C#]
public SqlParameter(
string parameterName,
object value
);


参数
parameterName
要映射的参数的名称。
value
一个 Object,它是 SqlParameter 的值。
备注
当在 value 参数中指定 Object 时,SqlDbType 将从 Object 的 .NET Framework 类型推断出。

这又如何解释??

同发:
http://huobazi.cnblogs.com/archive/2005/10/10/251251.html
...全文
550 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
loneghost 2005-10-17
  • 打赏
  • 举报
回复
如果没打SQL Server SP4,这样写没问题的
装了sp4之后,就必须制定SqlDataType为ntext
不然会出现楼主的那个问题
我们也是找了好久才发现这个问题
sxBamboo 2005-10-17
  • 打赏
  • 举报
回复
up
LoveCherry 2005-10-17
  • 打赏
  • 举报
回复
使用构造方法
public SqlParameter(
string parameterName,
object value
);时系统根据你的字符数据默认设置sqldbtype为nvarchar很正常啊,sqldbtype参数还是不要省略比较好,有的时候长度参数最好也不要省略(比如字符型的参数在做比较),都和存储过程的参数匹配比较好


活靶子哥哥 2005-10-16
  • 打赏
  • 举报
回复
内容绝对没有超过ntext长度,采用新的代码就插入了
SnApnet 2005-10-15
  • 打赏
  • 举报
回复
偷笑中...
yezie 2005-10-15
  • 打赏
  • 举报
回复
Ntext的?你的内容超过Ntext的长度?????
charles_y 2005-10-15
  • 打赏
  • 举报
回复
把f.data 的内容填上去看看行吗?
是不是表中对应 NtextData 的字段长度不够
活靶子哥哥 2005-10-15
  • 打赏
  • 举报
回复
up
qugui 2005-10-11
  • 打赏
  • 举报
回复
看不懂
活靶子哥哥 2005-10-11
  • 打赏
  • 举报
回复
ztfuqing 2005-10-11
  • 打赏
  • 举报
回复
bug^^
adandelion 2005-10-10
  • 打赏
  • 举报
回复
up
loveyzy 2005-10-10
  • 打赏
  • 举报
回复
向你提供一点间接的帮助:
你可以致信:dolphin@vip.163.com
MSDN Entprise Lirbary 专家 俞晖先生
我想很快会等到答复

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧