深圳网站设计公司龙岗,谈谈百度和谷歌seo优化的区别,在线服务平台的跨境电商有哪些,公积金门户网站建设方案提示 \color{red}{提示} 提示#xff1a; 《Linux系统上编译安装FreeTDS库文件》中讲述了如何编译FreeTDS源码#xff0c;并安装。
本文部分内容会在上述文章的基础上深入。
本文内容所使用的环境
Windows系统#xff1a;Windows 10 企业版 64位操作系统#xff1b;IP 《Linux系统上编译安装FreeTDS库文件》中讲述了如何编译FreeTDS源码并安装。
本文部分内容会在上述文章的基础上深入。
本文内容所使用的环境
Windows系统Windows 10 企业版 64位操作系统IP192.168.1.130Linux系统BigCloud Enterprise Linux 8.2 (Core)IP192.168.1.110数据库Microsoft SQL Server 2008 (RTM) Enterprise Edition安装在Windows系统上默认端口1433
需求背景
C# .NET8框架的程序运行在Linux系统上使用技术手段使得C#程序不仅可以访问Linux系统上的SQLServer数据库也能访问Windows系统上的SQLServer数据库以应对复杂的应用场景需求。
注可能还有很多种方式可以实现需求这里讲述 ODBCFreeTDS 的方式。
思路
C#程序无法直接使用FreeTDS库文件但是可以使用ODBC数据库标准接口。ODBC标准接口可以指定使用FreeTDS作为数据库驱动。这样就可以使用ODBC调用FreeTDS驱动实现数据库访问。
1.首先验证网络问题
根据文章《FreeTDS从Linux访问Windows SqlServer数据库》中说明验证就可以这里不在累赘。
2.安装unixODBC包 yum install unixODBC 3.安装unixODBC-devel开发包后面重新编译FreeTDS会用到 yum install unixODBC-devel 4.重新编译安装FreeTDS
这里重新编译FreeTDS是为了使FreeTDS支持ODBC管理即要生成 libtdsodbc.so 驱动库方便配置。 根据官网《How to build: Configure and make》章节介绍在使用 configure 命令时要加上 –with-unixodbc才能生成 libtdsodbc.so 驱动库使FreeTDS支持ODBC管理。
参数 --with-unixodbc 使用的时候后面跟 unixODBC-devel 开发包的安装路径如下 ./configure --prefix/usr/local --with-tdsver7.4 --with-unixodbc/usr --enable-msdblib –with-unixodbc 参数的路径一定要写对不然编译不过会提示找不到sql.h文件。 配置好后就按文章《Linux系统上编译安装FreeTDS库文件》中的介绍编译安装好即可。
5.配置freetds.conf
还是采用文章《FreeTDS从Linux访问Windows SqlServer数据库》中的配置不用变
# The server you added yourself
[myWin130]host 192.168.1.130port 1433tds version 7.06.配置odbcinst.ini
这个配置文件中存储了ODBC驱动程序的信息可以指定驱动程序。 在配置文件中添加如下代码
[FreeTDS]
DescriptionFreeTDS Driver for Linux
Driver/usr/local/lib/libtdsodbc.so
Setup/usr/local/lib/libtdsodbc.so
UsageCount1
这里添加了一个别名为 FreeTDS 的驱动名字可以随便起符合实际意义就好这个驱动的信息为
Description描述字段随便写符合实际情况就行Driver指定使用的驱动程序库文件的位置这里指定freetds中的odbc驱动支持库文件。 即上面生成的libtdsodbc.so库的位置。Setup指定了用于安装驱动程序的设置库文件位置这里写成和驱动程序库文件一样的即可。UsageCount默认就好
7.配置odbc.ini
此文件用来配置ODBC的数据源名称在配置文件中添加如下代码
[win130]
Driver FreeTDS
Servername myWin130
Database fy2000解释 配置了一个名称为 win130 的数据源名字可以随便起符合实际意义就行 指定驱动为 odbcinst.ini 文件中添加的驱动 FreeTDS 指定服务器名称使用 freetds.conf 配置中的 myWin130。 制动数据库名称为 fy2000
8.使用isql命令行工具访问数据库
[rootlocalhost ~]# isql -v win130 sa 123456
---------------------------------------
| Connected! |
| |
| sql-statement |
| help [tablename] |
| echo [string] |
| quit |
| |
---------------------------------------
select * from tb_student_info where class2
----------------------------------------------------
| name | class | age | hight |
----------------------------------------------------
| 小红 | 6 | 35 | 130 |
| 小兵 | 3 | 25 | 234 |
----------------------------------------------------
SQLRowCount returns 2
2 rows fetched
SQL quit
[rootlocalhost ~]# 到这里配置的ODBC就起作用了。
9.C#-Demo代码
新建 test .NET8 项目在项目中安装 System.Data.Odbc 软件包 Program.cs 文件内容如下
using System.Data.Odbc;string connectionString DSNwin130;UIDsa;PWD123456;;
using (OdbcConnection connection new OdbcConnection(connectionString))
{try{connection.Open();Console.WriteLine(Connection opened successfully.);// 执行 SQL 查询 string sql SELECT * FROM tb_student_info;OdbcCommand command new OdbcCommand(sql, connection);using (OdbcDataReader reader command.ExecuteReader()){while (reader.Read()){// 处理查询结果 Console.WriteLine(String.Format({0}, {1}, {2}, {3}, reader[0], reader[1], reader[2], reader[3]));}}}catch (Exception ex){Console.WriteLine(Error: ex.Message);}
}发布到Linux服务器并运行
[rootlocalhost test]# dotnet test.dll
Connection opened successfully.
小美, 2, 18, 123
小红, 6, 35, 130
小兵, 3, 25, 234
[rootlocalhost test]# 可以看到程序运行成功。 以上就是本次分享的全部内容希望对你有帮助感谢您的查阅。