一个字段A在sql server数据库中是varchar(8)System.Data.SqlClient.SqlParameter[] arrParam = new System.Data.SqlClient.SqlParameter[1] { new System.Data.SqlClient.SqlParameter("@Col2",SqlDbType.VarChar,8) };
arrParam[0].Value = "sdfsd很好啊,哈哈哈。";为什么明明指定长度了还报错,提示要截断,不是使用参数后应自动截断了吗?
还有,无论是SqlDbType.NVarChar,还是SqlDbType.VarChar程序判断"sdfsd很好啊,哈哈哈。"Length都是13,这个我知道应该是String是Unicode的问题,但是指定了SqlDbType.VarChar后不会处理吗?怎么使用c#参数处理varchar类型啊?
arrParam[0].Value = "sdfsd很好啊,哈哈哈。";为什么明明指定长度了还报错,提示要截断,不是使用参数后应自动截断了吗?
还有,无论是SqlDbType.NVarChar,还是SqlDbType.VarChar程序判断"sdfsd很好啊,哈哈哈。"Length都是13,这个我知道应该是String是Unicode的问题,但是指定了SqlDbType.VarChar后不会处理吗?怎么使用c#参数处理varchar类型啊?
解决方案 »
- C#如何用程序关闭系统弹出的对话框?有点难度
- 使用Ajax如何保证数据库连接字符串不被HTML暴露
- VSS 2005 禁忌问题 求教高手 来着有分
- iis重装后,访问不到数据库 ,实在搞不定。。。请遇到过的朋友指点下
- 做个小调查。请问大家编写web应用程序的时候,是否使用UML。
- Winform窗体分为左右两部分,然后对左部分进行隐藏和显示的问题
- 在C#中设断点的问题
- 请问基于.net的Agent Service是什么呀
- 一个小问题(怎样对string 类型的每一个字符进行操作)
- 我有什么办法又能得到变量名称又能得到变量值?
- 局域网环境下如何向某台电脑的共享文件夹拷贝文件?
- 怎么用textbox控制复制richtextbox中文本复制条数。
字符串“sdfsd很好啊,哈哈哈。”应该截取varchar编码下的8位,即“sdfsd很”,实事上程序没截取,而是报错,说超出长度,不想给你解释这么多,你自己试一下我一直都怀疑的事还是发生了:
对于字符型参数来讲,.net的参数长度实际上是字符数量,与数据库中字段长度是不一回事的,除非数据库字段是varchar类型,否则这个长度都是有出入的,而我见过的人基本上没有注意过这个问题,大家都在错?
怎么才能对varchar类型进行参数处理呢?要保证按照数据字段的长度