sqlsugar如何使用OLEDB方式连接sqlserver数据库 返回

SqlSugar 沟通中
15 176

因为历史原因,当前我们使用的数据库是sqlserver 2008R2,但是连接方式采用的是OLEDB方式。

在创建连接对象时使用的是如下方式:

using (OleDbConnection conn = new OleDbConnection("Provider=SQLOLEDB;Auto Translate=false;" + connectionString))

{

    //....

}


如果不采用该方式创建连接对象,从数据库查询出来的中文汉字是乱码,采用该方式查询出来的文字才是正常的汉字。

目前正在从.NET Framework升级成.NET 8,替换成sqlsugar后该问题有无解决办法,烦请指导一下。[抱拳]



热忱回答15

  • 为什么用OleDbConnection 连sqlserver

    0 回复
  • sqlsugar支持sqlserver 08 推荐用默认方式连接不要用 oledb

    0 回复
  • 还有一种办法就是数据库都用nvarchar

    0 回复
  • @fate sta:这个就是我所说的历史原因,之前MSSQL数据库是为PB提供持久化的,后面引入了.NET语言做系统升级。为了保证新老客户升级或迭代能够同步进行所以数据库都用的同一套,但是PB写进去的数据在.NET里面按照普通连接方式读取出来就是乱码,改成OLEDB方式连接后读取出来的数据才正常。


    我知道这个问题可能比较小众,但确实是我们遇到的一个现实问题,请指导下如何该如何配置才能解决该问题呢,非常感谢!

    0 回复
  • 数据库字段不能用Nvarchar吗

    0 回复
  • 都用Nvarchar应该不会乱码

    0 回复
  • 这个项目都存在好多年了,光数据库表都有几百张,涉及到的字段那更是不知多少。就算有心改成nvarchar也不敢动,而且数据库都是在独立部署在客户端机房,要改也是有心无力

    0 回复
  • DbType.Acess 是OLEDB的

    0 回复
  • 你可以基本的


    db.ado.sqlquery这些方法理论上可以用

    0 回复
  • 除了ADO方法其他的估计用不了

    0 回复
  • 好的,谢谢大佬,我先试试access sqlquery方式。

    0 回复
  • @爱飞的鱼:补充一下,如果使用access方式来连接,数据库连接地址该如何写呢?还是按照sqlserver方式来写吗?我看文档里面Access连接字符串是如下方式:Provider=Microsoft.ACE.OleDB.15.0;Data Source="+GetCurrentProjectPath+"\\test.accdb

    0 回复
  • 你原来怎么写还怎么写 

    0 回复
  • Provider=SQLOLEDB;Auto Translate=false;" + connectionString)

    0 回复
  • 好的,感谢大佬指点

    0 回复