《2022年数据库连接C#.NET连接数据库方法》由会员分享,可在线阅读,更多相关《2022年数据库连接C#.NET连接数据库方法(9页珍藏版)》请在金锄头文库上搜索。
1、数据库的连接串在数据库的各种应用程序开发中,连接数据库是数据库应用程序开发的第一步,同时也是最重要的一步。而对于不同的数据库他们的连接模式各有不同,对应的连接串也不同。Sql Server ODBC o 标准连接( Standard Security): Driver=SQL Server;Server=Aron1;Database=pubs;Uid=sa;Pwd=asdasd; 1)当服务器为本地时Server 可以使用 (local); Driver=SQL Server;Server=(local);Database=pubs;Uid=sa;Pwd=asdasd; 2)当连接远程服务器时
2、,需指定地址、端口号和网络库Driver=SQL Server;Server=130.120.110.001;Address=130.120.110.001,1052;Network=dbmssocn;Database=pubs;Uid=sa;Pwd=asdasd; 注: Address 参数必须为IP 地址,而且必须包括端口号o 信任连接( Trusted connection): (Microsoft Windows NT 集成了安全性)Driver=SQL Server;Server=Aron1;Database=pubs;Trusted_Connection=yes; 或者Driver
3、=SQL Server;Server=Aron1;Database=pubs; Uid=;Pwd=; o 连接时弹出输入用户名和口令对话框: Conn.Properties(Prompt) = adPromptAlways Conn.Open Driver=SQL Server;Server=Aron1;DataBase=pubs; OLE DB, OleDbConnection (.NET) o 标准连接( Standard Security): Provider=sqloledb;Data Source=Aron1;Initial Catalog=pubs;User Id=sa;Passw
4、ord=asdasd; o 信任连接( Trusted connection): Provider=sqloledb;Data Source=Aron1;Initial Catalog=pubs;Integrated Security=SSPI; (如果连接一个具体的已命名SQLServer实例 ,使用 Data Source=Servere NameInstance Name;但仅适用于SQLServer2000)例 如 : ”Provider=sqloledb;Data Source=MyServerNameMyInstanceName;Initial Catalog=MyDatabase
5、Name;User Id=MyUsername;Password=MyPassword; ” o 连接时弹出输入用户名和口令对话框: Conn.Provider = sqloledb Conn.Properties(Prompt) = adPromptAlways Conn.Open Data Source=Aron1;Initial Catalog=pubs; o 通过 IP 地址连接 : Provider=sqloledb;Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=pubs;User
6、ID=sa;Password=asdasd; (DBMSSOCN=TCP/IP代替 Named Pipes, Data Source的末尾是需要使用的端口号(缺省为 1433) SqlConnection (.NET) o 标准连接( Standard Security): Data Source=Aron1;Initial Catalog=pubs;User Id=sa;Password=asdasd; 或者Server=Aron1;Database=pubs;User ID=sa;Password=asdasd;Trusted_Connection=False 名师资料总结 - - -精品
7、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - (这两个连接串的结果相同) o 信任连接( Trusted connection): Data Source=Aron1;Initial Catalog=pubs;Integrated Security=SSPI; 或者Server=Aron1;Database=pubs;Trusted_Connection=True; (这两个连接串的结果相同) (可以用 serverNameinstanceName代替
8、Data Source ,取值为一个具体的SQLServer实例 ,但仅适用于SQLServer2000) o 通过 IP 地址连接 : Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=pubs;User ID=sa;Password=asdasd; (DBMSSOCN=TCP/IP代替 Named Pipes, Data Source的末尾是需要使用的端口号(缺省为 1433) o SqlConnection连接的声明 : C#: using System.Data.SqlClient; Sq
9、lConnection SQLConn = new SqlConnection(); SQLConn.ConnectionString=my connectionstring; SQLConn.Open(); VB.NET: Imports System.Data.SqlClient Dim SQLConn As SqlConnection = New SqlConnection() SQLConn.ConnectionString=my connectionstring SQLConn.Open() Data Shape o MS Data Shape Provider=MSDataShap
10、e;Data Provider=SQLOLEDB;Data Source=Aron1;Initial Catalog=pubs;User ID=sa;Password=asdasd; 更多o 如何定义使用哪个协议举例 : Provider=sqloledb;Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=pubs;User ID=sa;Password=asdasd; 名称 网络协议库dbnmpntw Win32 Named Pipes dbmssocn Win32 Winsock TCP/IP
11、 dbmsspxn Win32 SPX/IPX dbmsvinn Win32 Banyan Vines dbmsrpcn Win32 Multi-Protocol (Windows RPC) 重要提示当通过 SQLOLEDB提供者进行连接时使用以下语法:Network Library=dbmssocn 但通过 MSDASQL提供者进行连接时使用以下语法:Network=dbmssocn 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - -
12、 - o 所有 SqlConnection连接串属性下表显示了 ADO.NET SqlConnection对象的所有连接串属性. 其中大多数的属性也在ADO 中使用 .所有属性和描述来自于msdn. 名称 缺省值描述Application Name 应用程序名称或者当没有提供应用程序时为.Net SqlClient数据提供者AttachDBFilename或者 extended properties或者 Initial File Name 主要文件的名字,包括相关联数据库的全路径。数据库名字必须通过关键字database 来指定。Connect Timeout或者 Connection Tim
13、eout 15 在中止连接请求, 产生错误之前等待服务器连接的时间(以秒为单位)Connection Lifetime 0 当一个连接返回到连接池,当前时间与连接创建时间的差值,如果时间段超过了指定的连接生存时间,此连接就被破坏。它用于聚集设置中在运行服务器和准备上线的服务器之间强制负载平衡。Connection Reset true 当连接从连接池移走时决定是否重置数据库连接。当设置为 false 时用于避免获得连接时的额外服务器往复代价。Current Language SQL Server语言记录名称Data Source或 Server 或 Address 或 Addr 或 Netwo
14、rk Address 要连接的 SQL Server实例的名字或者网络地址Enlist true 为真时,连接池自动列出创建线程的当前事务上下文中的连接。Initial Catalog或 Database 数据库名Integrated Security或者 Trusted_Connection false 连接是否为信任连接。其取值为true , false 和sspi(等于 true ). Max Pool Size 100 连接池中允许的最大连接数Min Pool Size 0 连接池中允许的最小连接数Network Library或 Net dbmssocn 网络库用于建立与一个SQL
15、Server 实例的连接。值包括 dbnmpntw ( 命名管道 ), dbmsrpcn ( 多协议 ), dbmsadsn (Apple Talk), dbmsgnet (VIA), dbmsipcn ( 共享内存) 和dbmsspxn (IPX/SPX), 和 dbmssocn (TCP/IP). 所连接的系统必须安装相应的动态链接库。如果你没有指定网络,当你使用一个局部的服务器(例如 , . 或者 (local), 将使用共享内存Packet Size 8192 与 SQL Server 的一个实例通讯的网络包字节大小Password- 或 Pwd SQL Server帐户登录口令Per
16、sist Security Info false 设置为 false, 当连接已经打开或者一直处于打开状态时,敏感性的安全信息(如口令)不会返回作为连接的一部分信息。Pooling true 为真时 ,从合适的连接池中取出SQLConnection对象 ,或者必要时创建SQLConnection对象并把它增加到合适的连接池中。User ID SQL Server登录用户Workstation ID the local computer name 连接到 SQL Server的工作站名称注意:使用分号分隔每个属性如果一个名字出现多于两次,在连接串中的最后一次出现的值将被使用。如果你通过在应用中由
17、用户输入字段的值来构建连接串,你必须保证用户不会通过用户值里的另一个值插入到一个额外的属性来改变连接串。Access ODBC o 标准连接( Standard Security): Driver=Microsoft Access Driver (*.mdb);Dbq=C:mydatabase.mdb;Uid=Admin;Pwd=; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - o 组(系统数据库)连接(Workgroup )
18、: 两种方法分别为:在连接串或在打开数据集中指定用户名和口令Driver=Microsoft Access Driver (*.mdb);Dbq=C:mydatabase.mdb;SystemDB=C:mydatabase.mdw;,admin, 或if(pDB.Open(Driver=Microsoft Access Driver (*.mdb);Dbq=C:mydatabase.mdb;SystemDB=C:mydatabase.mdw;, , DatabaseUser, DatabasePass) DoSomething(); pDB.Close(); o 独占方式( Exclusive
19、 ): Driver=Microsoft Access Driver (*.mdb);Dbq=C:mydatabase.mdb;Exclusive=1;Uid=admin;Pwd= OLE DB, OleDbConnection (.NET) o 标准连接( Standard Security): Provider=Microsoft.Jet.OLEDB.4.0;Data Source=somepathmydb.mdb;User Id=admin;Password=; o 组连接(系统数据库)Provider=Microsoft.Jet.OLEDB.4.0;Data Source=somepa
20、thmydb.mdb;Jet OLEDB:System Database=system.mdw;,admin, o 带口令的连接 : Provider=Microsoft.Jet.OLEDB.4.0;Data Source=somepathmydb.mdb;Jet OLEDB:Database Password=MyDbPassword;,admin, Oracle ODBC o 新版本 : Driver=Microsoft ODBC for Oracle;Server=OracleServer.world;Uid=Username;Pwd=asdasd; o 旧版本 : Driver=Mic
21、rosoft ODBC Driver for Oracle;ConnectString=OracleServer.world;Uid=myUsername;Pwd=myPassword; OLE DB, OleDbConnection (.NET) o 标准连接( Standard Security): Provider=msdaora;Data Source=MyOracleDB;User Id=UserName;Password=asdasd; 这是 Microsoft 的格式 , 下面是 Oracle 的格式(提供者不同)Provider=OraOLEDB.Oracle;Data Sou
22、rce=MyOracleDB;User Id=Username;Password=asdasd; 注意:Data Source= 必须根据相应的命名方法设置为Net8 名称。例如对于局部命名, 它是 tnsnames.ora中的别名,对于Oracle 命名,它是 Net8 网络服务名o 信任连接( Trusted Connection): Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1; 或者设置 user ID 为 / Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;Use
23、r Id=/;Password=; OracleConnection (.NET) o 标准连接 : Data Source=Oracle8i;Integrated Security=yes; 这只对 Oracle 8i release 3或更高版本有效名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - o OracleConnection声明 : C#: using System.Data.OracleClient; Oracle
24、Connection OracleConn = new OracleConnection(); OracleConn.ConnectionString = my connectionstring; OracleConn.Open(); VB.NET: Imports System.Data.OracleClient Dim OracleConn As OracleConnection = New OracleConnection() OracleConn.ConnectionString = my connectionstring OracleConn.Open() Data Shape o
25、MS Data Shape: Provider=MSDataShape.1;Persist Security Info=False;Data Provider=MSDAORA;Data Source=orac;user id=username;password=mypw MySQL ODBC o 本地数据库 : Driver=mySQL;Server=mySrvName;Option=16834;Database=mydatabase; Sever 参数也可以使用localhost 作为其值o 远程数据库 : Driver=mySQL;Server=;Port=3306;Option=1310
26、72;Stmt=;Database=my-database;Uid=username;Pwd=password; Option 值 取值的含义1 客户端不能处理MyODBC 返回一列真实宽度的情况2 客户端不能处理MySQL返回影响的行的真实值的情况如果设置此标志,MySQL返回 found rows 。MySQL 3.21.14或更新版才能生效4 在c:myodbc.log中 生 成 一 个 调 试日 志 。 这 与 在 AUTOEXEC.BAT中 的 设 置MYSQL_DEBUG=d:t:O,c:myodbc.log相同8 对于结果和参数不设置任何包限制16 不使驱动器弹出问题32 使用或
27、去除动态游标支持。这在MyODBC 2.50中是不允许的64 在database.table.column中忽略数据库名字的使用128 强制使用 ODBC 管理器游标256 去除扩展取值(fetch )的使用512 充满 char 字段满长度1024 SQLDescribeCol()函数返回完全满足条件的列名2048 使用压缩的服务器/客户端协议4096 告诉服务器在函数后和(前忽略空格(PowerBuilder需要)。这将产生所有函数名关键词8192 使用命名管道连接运行在NT 上的 Mysqld 服务器16384 将 LONGLONG列改为 INTl 列(有些应用不能处理LONGLONG列
28、)32768 从 SQLTables 中返回 user 作为 Table_qualifier和 Table_owner 66536 从客户端读参数,从f 读 ODBC 群名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - 131072 增加一些额外的安全性检查如果你需要许多选项,你应该把以上标志相加。 OLE DB, OleDbConnection (.NET) o 标准连接 : Provider=MySQLProv;Data So
29、urce=mydb;User Id=UserName;Password=asdasd; Data Source是 MySQL 数据库的名字,也可以使用server=localhost;DB=test MySqlConnection (.NET) o eInfoDesigns.dbProvider: Data Source=server;Database=mydb;User ID=username;Password=pwd;Command Logging=false 只适用于eInfoDesigns dbProvider, 附加到 .NET o MySqlConnection的声明 : C#:
30、using eInfoDesigns.dbProvider.MySqlClient; MySqlConnection MySqlConn = new MySqlConnection(); MySqlConn.ConnectionString = my connectionstring; MySqlConn.Open(); VB.NET: Imports eInfoDesigns.dbProvider.MySqlClient Dim MySqlConn As MySqlConnection = New MySqlConnection() MySqlConn.ConnectionString =
31、my connectionstring MySqlConn.Open() Interbase ODBC, Easysoft o 本地计算机 : Driver=Easysoft IB6 ODBC;Server=localhost;Database=localhost:C:mydatabase.gdb;Uid=username;Pwd=password o 远程计算机 : Driver=Easysoft IB6 ODBC;Server=ComputerName;Database=ComputerName:C:mydatabase.gdb;Uid=username;Pwd=password ODBC
32、, Intersolv o 本地计算机 : Driver=INTERSOLV InterBase ODBC Driver (*.gdb);Server=localhost;Database=localhost:C:mydatabase.gdb;Uid=username;Pwd=password o 远程计算机 : Driver=INTERSOLV InterBase ODBC Driver (*.gdb);Server=ComputerName;Database=ComputerName:C:mydatabase.gdb;Uid=username;Pwd=password 这个驱动器现在由Da
33、taDirect Technologies来提供(以前由 Intersolv 提供 ) OLE DB, SIBPROvider o 标准连接 : provider=sibprovider;location=localhost:;data source=c:databasesgdbsmygdb.gdb;user id=SYSDBA;password=masterkey 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - o 指定字符集
34、 : provider=sibprovider;location=localhost:;data source=c:databasesgdbsmygdb.gdb;user id=SYSDBA;password=masterkey;character set=ISO8859_1 o 指定角色 : provider=sibprovider;location=localhost:;data source=c:databasesgdbsmygdb.gdb;user id=SYSDBA;password=masterkey;role=DIGITADORES 需要了解更多请链接到Interbase的如下B
35、orland开发者网络文章http:/ IBM DB2 OLE DB, OleDbConnection (.NET) from ms o TCP/IP: Provider=DB2OLEDB;Network Transport Library=TCPIP;Network Address=XXX.XXX.XXX.XXX;Initial Catalog=MyCtlg;Package Collection=MyPkgCol;Default Schema=Schema;User ID=MyUser;Password=MyPW o APPC: Provider=DB2OLEDB;APPC Local LU
36、 Alias=MyAlias;APPC Remote LU Alias=MyRemote;Initial Catalog=MyCtlg;Package Collection=MyPkgCol;Default Schema=Schema;User ID=MyUser;Password=MyPW AS400 ODBC Driver=Client Access ODBC Driver (32-bit);System=myAS400;Uid=myUsername;Pwd=myPassword OLE DB, OleDbConnection (.NET) Provider=IBMDA400;Data s
37、ource=myAS400;User Id=myUsername;Password=myPassword; Sybase ODBC o Sybase System 12 (或 12.5) Enterprise Open Client标准连接 : Driver=SYBASE ASE ODBC Driver;Srvr=Aron1;Uid=username;Pwd=password o Sybase System 11标准连接 : Driver=SYBASE SYSTEM 11;Srvr=Aron1;Uid=username;Pwd=password; o Intersolv 3.10: Drive
38、r=INTERSOLV 3.10 32-BIT Sybase;Srvr=Aron1;Uid=username;Pwd=password; o Sybase SQL Anywhere (以前为 Watcom SQL ODBC driver): ODBC; Driver=Sybase SQL Anywhere 5.0; DefaultDir=c:dbfolder;Dbf=c:mydatabase.db;Uid=username;Pwd=password;Dsn= 注意: 对于在末尾紧跟着DSN 参数被引用的双引号(VB 语法), 你必须改变符合你所使用的语言所指定的引用符号语法。 DSN 参数为空
39、实际上非常重要,如果不包括的话将导致7778 错误。 OLE DB o Adaptive Server Anywhere (ASA): Provider=ASAProv;Data source=myASA o Adaptive Server Enterprise (ASE)(带数据源为 .IDS 文件) : Provider=Sybase ASE OLE DB Provider; Data source=myASE 注意你必须使用数据管理器来创建一个数据源.IDS 文件 .这些 .IDS 文件类似于ODBC DSNs. Visual FoxPro (dBASE ) ODBC 名师资料总结 -
40、- -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - o dBASE: Driver=Microsoft dBASE Driver (*.dbf); DriverID=277;Dbq=c:DatabasePath 注意在书写 sql 语句时必须指定文件名(如“Select Name, Address From Clients.dbf”). o Visual Foxpro( 有数据库容器 ): Driver=Microsoft Visual Foxpro
41、 Driver;UID=; SourceType=DBC;SourceDB=C:DatabasePathMyDatabase.dbc;Exclusive=No o Visual Foxpro( 无数据库容器 ): Driver=Microsoft Visual Foxpro Driver;UID=; SourceType=DBF;SourceDB=C:DatabasePathMyDatabase.dbc;Exclusive=No OLE DB, OleDbConnection (.NET) o 标准连接 : Provider=vfpoledb;Data Source=C:DatabasePat
42、hMyDatabase.dbc; Excel ODBC o 标准连接( Standard Security): Driver=Microsoft Excel Driver (*.xls);DriverId=790; Dbq =C:DatabasePathDBSpreadSheet.xls;DefaultDir=c:databasepath; OLE DB Provider for Microsoft Jet o 标准连接( Standard Security): Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:DatabasePathDBSprea
43、dSheet.xls;Extended Properties=Excel 8.0;HDR=Yes; 注意:如果 HDR=Yes ,那么提供者不会在记录集中包括选择的第一行,如果,那么提供者将在记录集中包括单元范围(或已经命名范围)的第一行Text ODBC o 标准连接( Standard Security): Driver=Microsoft Text Driver (*.txt; *.csv); Dbq=C:DatabasePath;Extensions=asc,csv,tab,txt; 如 果 文 本 文 件 使 用tab作 为 分 隔 符 , 你 必 须 创 建schema.ini文
44、件 , 你 必 须 在 连 接 串 中 使 用Format=TabDelimited选项。注意:你必须在sql 语句中指定文件名(例如Select Name, Address From Clients.csv) OLE DB Provider for Microsoft Jet o 标准连接( Standard Security): Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:DatabasePath;Extended Properties=text;HDR=Yes;FMT=Delimited; 注意在书写 sql 语句时必须指定文件名(如“S
45、elect Name, Address From Clients.txt”). ODBC DSN DSN=MyDSN;Uid=MyUsername;Pwd=MyPassword; OLE DB Provider for ODBC Databases 连接 Access: Provider=MSDASQL;Driver=Microsoft Access Driver (*.mdb);Dbq=c:DatabasePathMyDatabase.mdb;Uid=MyUsername;Pwd=MyPassword; 连接 SQL Server: Provider=MSDASQL;Driver=SQL S
46、erver;Server=MyServerName;Database=MyDatabaseName;Uid=MyUsername;Pwd=MyPassword; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - 使用 DSN 进行连接 : Provider=MSDASQL;PersistSecurityInfo=False;Trusted_Connection=Yes;Data Source=MyDSN;catalog=MyDat
47、abase; OLE DB Provider for OLAP Provider=MSOLAP;Data Source=MyOLAPServerName;Initial Catalog=MyOLAPDatabaseName; 通过 http 连接 : 这个特征允许客户端应用程序通过在客户端应用程序连接字符串的Data Source参数中指定一个URL 并使用 IIS 连接到一个分析服务器。这种连接方法允许PivotTable服务通过防火墙或者代理服务器连接到分析服务器。一个特殊的ASP 页面 Msolap.asp通过 IIS 进行连接。当连接到服务器时,这个文件一定在这个目录中并且作为URL
48、的一部分 (例如 http:/ url 连接 : Provider=MSOLAP;Data Source=http:/MyOLAPServerName/;Initial Catalog=MyOLAPDatabaseName; 使用 ssl 连接 : Provider=MSOLAP;Data Source=https:/MyOLAPServerName/;Initial Catalog=MyOLAPDatabaseName; OLE DB Provider for Active Directory Provider=ADSDSOObject;User Id=myUsername;Password
49、=myPassword; OLE DB Provider for Index Server provider=msidxs;Data Source=MyCatalog; OLE DB Data Link Connections File Name=c:DataBasePathDatabaseName.udl; Outlook 2000 personal mail box Provider=Microsoft.Jet.OLEDB.4.0;Outlook 9.0;MAPILEVEL=;DATABASE=C:Temp; 使用任何临时文件夹代替c:temp 。这将在那个文件夹创建一个模式文件,当你打开
50、它时, 它会显示可以得到的所有字段。空的mapilevel表明最高层的文件夹。Exchange mail box Provider=Microsoft.Jet.OLEDB.4.0;Exchange 4.0;MAPILEVEL=Mailbox - Pat Smith|;DATABASE=C:Temp; 使用任何临时文件夹代替c:temp. 注意:你能象数据库一样对mail store输入查询举例: SQL SELECT Contacts.* FROM Contacts;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -