高分求教ADO和ADO.NET的问题,急!!!

TonyTonyQ 2004-02-15 12:46:40
ASP网页中,用ADO的 field.AppendChunk 方法写入SQL Server数据库nText型字段的中文文本数据,可以用 field.GetChunk 方法取出来,然后用 request.binarywrite输出正常的中文文本。但在 ASP.NET 中,使用 ADO.NET 如何得到正常的中文???如果用通常的方法读取这个由 AppendChunk 写入中文的字段的话,得到的是一段乱码!请问如何取出这种数据?是有什么方法能直接正确的读出来呢?还是先读出来再解码? 注:如果用SQL Server的企业管理器察看 AppendChunk 方法写入的中文数据,显示的是和由 ADO.NET 直接读出来一样的乱码。100分求解决办法
...全文
63 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞行石 2004-04-25
  • 打赏
  • 举报
回复
我想不管在ASP还是ASP.NET中统一调用封装好的存储过程应该没问题。
只是不知道你为什么要用field.GetChunk这个来写入nText。
webdiyer(陕北吴旗娃)的方法已经是百试不爽的方法了。你可以试试看。

关于BinaryWrite的操作,我查阅了几个文档:
1.MSDN中搜索IIS的ASP下BinaryWrite是这么说的:
The BinaryWrite method writes the specified information to the current HTTP output without any character conversion。
地址:ms-help://MS.MSDNQTR.2003FEB.2052/iisref/htm/ref_vbom_resombw.htm

2.MSDN中搜索ASP.NET的HttpResponse.BinaryWrite是这么说的:
“将一个二进制字符串写入 HTTP 输出流。”
地址:ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemwebhttpresponseclassbinarywritetopic.htm

看似没什么区别,但是1中有这么一段“without any character conversion”,它不进行任何字符转换,所以原来什么样现在还是什么样。但是ASP.NET的BinaryWrite却没有说不进行转换。那么有可能就是根据默认的页面编码进行转换。

另外nText是以Unicode方式存储,用这种存储的二进制代码直接在SQL Server打开肯定都是???????????????????的。还有一种可能就是ASP.NET在读取这些代码的时候采用一些预先转换的机制,使得读到的数据就是真正的???????????????????数据,所以在ASP.NET中得到的数据的确是真正的问号了:)

对于AppendChunk,我查阅了MSDN,
ms-help://MS.MSDNQTR.2003FEB.2052/ado270/htm/mdamth01_3.htm
找到了这句话:
Use the AppendChunk method on a Field or Parameter object to fill it with long binary or character data. In situations where system memory is limited, you can use the AppendChunk method to manipulate long values in portions rather than in their entirety.

这个不太熟,有值得好笑的地方请指正。

62,046

社区成员

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

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

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

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