老程序员学C# (二)------连接SQL2005 数据库

    将上面的按钮控件名字改成hellword,然后我们再新建一个按钮,名称改为“SQLdatabase”,下来我们就开始建立最简单的数据库连接测试。

    首先确认数据库是否连接正确:

    打开SQL Server 2005 Management Express,会弹出窗口要求连接,如图:

 

 

 

 

     选择连接即可,在打开的数据库中建立一个新的数据库“testDB”,创建一个表“danwei”,具体如图:(其中danweiID部分,设置数据类型的时候,我们希望自动递增,则设置选择INT型后,设置“列属性”,选“标识规范”----(是标识)---选“是”,“标识增量”和“标识种子”均设置为“1”,表示每次增加一个)

 

 

 

 

    下来我们从Visual Studio 2008中,测试是否能够连接数据库。

    我们使用比较可靠的数据控件来测试。

    打开----视图------服务器资源管理器------数据库,右键点击“数据库”----“添加连接”,打开添加连接对话框,选择服务器名,如果下拉列表中没有建立的数据库服务器,那么手工添加数据库服务器名称(拷贝打开SQL 2005 Express,如果已经打开了,右键点服务器名称,选择“连接”,然后拷贝服务器名,到添加连接对话框进行粘贴即可)。然后在“选择或输入一个数据库名”下拉框里选择刚刚我们建立的数据库“textDB ”。点击“测试连接”。如果SQL服务器端设置没有问题,就会显示“测试连接成功”。如果弹出不允许远程访问,则请回到本文第一部分,查看配置SQL2005 远程访问的方法。

 

 

 

 

 

 

     如果测试连接成功,我们下来就可以使用工具栏里的“BindingSource”控件来绑定数据源,并用DataGridView来显示数据了。这个的过程很简单,添加控件了,在属性框里选择DataSource的值为我们刚建的连接就可以了。

     当然,老程序员肯定是不愿意这么操作数据了,他需要更大的灵活性,于是准备来测试使用什么样的代码来连接和操作数据。现在创建的数据库中手工添加记录值如图:

 

 

 

 

 

     在“hello world”程序中进行测试,创建一个label3,一个按钮button2,分别把文本属性设置如下图:

 

 

 

 

 

     要使用SQL操作语句,就必须引用SQL类库。所以在代码文件上面,添加如下:

 

 

using System.Data.SqlClient;//添加引用

 

     双击button2,写入代码如下:

private void button2_Click(object sender, EventArgs e)

        {

            //定义数据库连接字符         

            string str_con = @"Data Source=26-3B72903E783B/SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=testDB;";

           

            //定义SQL语句字符串

             string sql = "select * from danwei";

 

            //定义并实例化数据库连接类型变量

            SqlConnection conn=new SqlConnection(str_con);        

         

            //打开数据库连接

            conn.Open();

 

//打开数据库连接

            SqlCommand comm = new SqlCommand(sql, conn);

           // SqlDataAdapter da = new SqlDataAdapter(comm);

           // da.SelectCommand = new SqlCommand(sql, conn);

           // DataSet ds = new DataSet();

           // da.Fill(ds, "danwei");

//执行读操作

            SqlDataReader objSqlReader = comm.ExecuteReader();

            //打开数据库连接

            while (objSqlReader.Read())

            {

//将数据库中读取的值赋值给label3

                label3.Text = objSqlReader.GetValue(1).ToString();

            }

                objSqlReader.Close();

        }

    每一句的代码都作了说明。在实现功能的同时,要注意到我注释掉的四行代码。运行后,label3会显示数据库值“中国”。

    理解起来很简单吧。读取数据库的步骤一般为:定义连接字符串-----打开数据库连接------执行查询操作----将查询出来的值赋值给显示控件。

 

    其实现在已经可以很灵活的操作数据库了,老程序员可以很顺手的插入与删除、修改数据库值了。不过对于新手,老程序员还是想将这几个类说的详细点。

 

SqlConnection 类:表示 SQL Server 数据库的一个打开的连接。即对数据库进行连接操作的类。

 

SqlCommand 类:表示要对 SQL Server 数据库执行的一个 Transact-SQL 语句或存储过程。 也就是用它的实例来执行对数据库的一些操作,比如读、写等操作。

 

SqlDataReader类:提供一种从 SQL Server 数据库读取行的只进流的方式。就是一个读取数据库行的集合。

 

     一般上面三个类就可以完成对数据库的操作了。不过这里注释掉的语句里面还要介绍几个相关类。

SqlDataAdapter 表示用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接。这个就厉害了。详细说说。

 

          SqlDataAdapter DataSet SQL Server 之间的桥接器,用于检索和保存数据

 

 

MSDN这样说的:

 

SqlDataAdapter 通过对数据源使用适当的 Transact-SQL 语句映射 Fill(它可更改 DataSet 中的数据以匹配数据源中的数据)和 Update(它可更改数据源中的数据以匹配 DataSet 中的数据)来提供这一桥接。更新是逐行进行的。对于每个已插入、修改和删除的行,Update 方法会确定已对其执行的更改的类型(InsertUpdate Delete)。根据更改类型,执行 InsertUpdate Delete 命令模板将已修改的行传播给数据源。当 SqlDataAdapter 填充 DataSet 时,它为返回的数据创建必需的表和列(如果这些表和列尚不存在)。但是,除非 MissingSchemaAction 属性设置为 AddWithKey,否则这个隐式创建的架构中不包括主键信息。也可以使用 FillSchema,让 SqlDataAdapter 创建 DataSet 的架构,并在用数据填充它之前就将主键信息包括进去。有关更多信息,请参见向数据集添加现有约束 (ADO.NET)

 

 

通俗的说就是,SqlDataAdapterFill语句可以将数据源(即连接的数据库)中的数据填充到DataSet类型数据结构的数据变量里面去,即更新了DataSet;而Update语句相反,是将DataSet变量里面的数据填充到数据源(即数据库)中去。

 

SqlDataAdapter SqlConnection SqlCommand 一起使用,以便在连接到 SQL Server 数据库时提高性能。”

 

     这里新人要问:SqlDataReader SqlDataAdapter 与上面两个数据库操作类(SqlConnection SqlCommand)联系又什么区别呢? 我认为,SqlDataReader只是得到了行数据,而SqlDataAdapter操作所得到的是一个整表,包括列和行的数据和结构。实用点说,就是SqlDataAdapter可以使用Cell(行,列)的方式来检索数据。

SqlDataAdapter 还包括 SelectCommandInsertCommandDeleteCommandUpdateCommand TableMappings 属性,以便于数据的加载和更新。

DataSet又是什么呢?

DataSet表示数据在内存中的缓存。它用来指向从数据库中检索到的数据在内存中缓存的位置,包含多个DataTable对象。简单点说,就是一个数据表的集合(数据集),这些数据集合就是你用SQL语句查询到的数据组成的。这里可以实施数据完整性检查。

    好了,现在说说SqlDataAdapter SqlConnection SqlCommand ,以及DataSet之间是怎么调用数据库的。

private void button2_Click(object sender, EventArgs e)

        {

            //定义数据库连接字符         

            string str_con = @"Data Source=26-3B72903E783B/SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=testDB;";

           

            //定义SQL语句字符串

             string sql = "select * from danwei";

 

            //定义并实例化数据库连接类型变量

            SqlConnection conn=new SqlConnection(str_con);        

         

            //打开数据库连接

            conn.Open();

 

            //使用命令类来执行SQL语句,获取结果

            SqlCommand comm = new SqlCommand(sql, conn);

//创建数据适配器实例

            SqlDataAdapter da = new SqlDataAdapter(comm);

            //实例化数据集变量

            DataSet ds = new DataSet();

            //将刚刚获取的数据填充到数据集实例里面

            da.Fill(ds, "danwei");

//这个时候,ds变量里面是一个完整的数据结果表,所以使用下列语句只能看到表的第二列的列头

            label3.Text=ds.Tables[0].Columns[0].ToString();

//使用以下方法读取DATASET中的值

            label3.text=ds.Tables[0].Rows[0][0].ToString();

 

//关闭连接

            conn.Close();

        }

结果显示如下:

 

 

 

 

 

     要想显示说有的数据,可以使用DataGridView。窗口中添加一个DataGridView控件(在左边的工具栏里拖出来即可)。

    添加代码如下:

   private void button2_Click(object sender, EventArgs e)

        {

            ……

            label3.Text=ds.Tables[0].Columns[0].ToString();

            //接上面的代码,设置DataGridView控件的数据源为数据集变量,设置数据成员,帮定表名。

            dataGridView1.DataSource = ds;

            dataGridView1.DataMember = "danwei";

        }

     运行后,就会显示如下:

 

 

 

 

 

 

添加、删除、修改数据库的操作,此时可以只改变SQL语句,就可以实现。

 

例如:

 

添加 string Sql = string.Format("insert into danwei (danwei) values ('{0}')", textBox1.Text);

 

删除 string Sql = string.Format("insert into danwei (danwei) values ('{0}')", textBox1.Text);

 

修改 string Sql = string.Format("update danwei set danwei=('{0}')", textBox1.Text);

 

     该总结了,数据库的基础知识就是这样了。

     以上基本上已经满足了可以操作数据库的方法,而且数据形式也比较丰富,有字段,有表。赋值语句和显示语句已经都写得很明白了。基本上写个学生管理系统,算是基本胜任了。当然这是单文档进行一次数据库操作的尝试,如果是写系统程序,那么就应该把数据库连接和部分操作部分分离成一个单独的类文件。老程序员当然知道了。不过为了让新手也能快速的开发系统。这里举个系统登陆的小例子吧。

 

附表:

几种常用数据库的连接字符串:

 

SQL Server

 

ODBC

标准连接

Driver={SQL Server};Server=myServerAddress; Database=myDataBase;Uid=myUsername;Pwd=myPassword;

 

受信的连接

Driver={SQL Server};Server=myServerAddress; Database=myDataBase;Trusted_Connection=Yes;

 

指定帐号和密码

oConn.Properties("Prompt") = adPromptAlways Driver={SQL Server}; Server=myServerAddress;Database=myDataBase;

 

OLE DB, OleDbConnection (.NET)

标准连接

Provider=sqloledb;Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

 

受信的连接

Provider=sqloledb;Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;使用serverName/instanceName作为数据源可以指定SQL Server实例。

 

连接到一个SQL Server的实例

指定服务器实例的表达式和其他SQL Server的连接字符串相同。

Provider=sqloledb; Data Source=myServerName/theInstanceName; Initial Catalog=myDataBase;Integrated Security=SSPI;

 

指定帐户和密码

oConn.Provider = "sqloledb" oConn.Properties("Prompt") = adPromptAlways Data Source=myServerAddress;Initial Catalog=myDataBase;

 

使用IP地址的连接

Provider=sqloledb;Data Source=190.190.200.100,1433; Network Library=DBMSSOCN;Initial Catalog=myDataBase; User ID=myUsername; Password=myPassword;

 

SqlConnection (.NET)

标准连接

Data Source=myServerAddress;Initial Catalog=myDataBase; User Id=myUsername;Password=myPassword;

 

Standard Security alternative syntax

Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;

 

受信任的连接

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

 

Trusted Connection alternative syntax

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

 

连接到SQL Server实例

指定服务器实例的表达式和其他SQL Server的连接字符串相同。

Server=myServerName/theInstanceName;Database=myDataBase; Trusted_Connection=True;

 

仅能用于CE设备。

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;User ID=myDomain/myUsername;Password=myPassword;

 

带有IP地址的连接

Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase; User ID=myUsername;Password=myPassword;

 

指定包的大小

Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword; Trusted_Connection=False;Packet Size=4096;默认的包大小为8192字节。

 

Data Shape

MS Data Shape

Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=myServerAddress; Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;

 

 

SQL Server 2005

 

SQL Native Client ODBC Driver

标准安全连接

Driver={SQL Native Client};Server=myServerAddress; Database=myDataBase;Uid=myUsername;Pwd=myPassword;

 

受信的连接

Driver={SQL Native Client}; Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;

"Integrated Security=SSPI" "Trusted_Connection=yes" 是相同的。

 

连接到一个SQL Server实例

指定服务器实例的表达式和其他SQL Server的连接字符串相同。

Driver={SQL Native Client};Server=myServerName/theInstanceName;Database=myDataBase; Trusted_Connection=yes;

 

指定用户名和密码

oConn.Properties("Prompt") = adPromptAlways Driver={SQL Native Client}; Server=myServerAddress;Database=myDataBase;

 

使用MARS (multiple active result sets)

Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase; Trusted_Connection=yes;MARS_Connection=yes;

"MultipleActiveResultSets=true"MARS_Connection=yes"是相同的。

使用ADO.NET 2.0作为MARS的模块。 MARS不支持ADO.NET 1.0ADO.NET 1.1

 

验证网络数据

Driver={SQL Native Client}; Server=myServerAddress;Database=myDataBase; Trusted_Connection=yes;Encrypt=yes;

 

使用附加本地数据库文件的方式连接到本地SQL Server Express实例

Driver={SQL Native Client};Server=./SQLExpress; AttachDbFilename=c:/asd/qwe/mydbfile.mdf; Database=dbname;Trusted_Connection=Yes; 为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。

 

使用附加本地数据文件夹中的数据库文件的方式连接到本地SQL Server Express实例

Driver={SQL Native Client};Server=./SQLExpress; AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname; Trusted_Connection=Yes;为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。

 

数据库镜像

Data Source=myServerAddress; Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;

 

SQL Native Client OLE DB Provider

标准连接

Provider=SQLNCLI;Server=myServerAddress; Database=myDataBase;Uid=myUsername;Pwd=myPassword;

 

受信的连接

Provider=SQLNCLI;Server=myServerAddress; Database=myDataBase;Trusted_Connection=yes;

 

连接到SQL Server实例

指定服务器实例的表达式和其他SQL Server的连接字符串相同。

Provider=SQLNCLI;Server=myServerName/theInstanceName; Database=myDataBase;Trusted_Connection=yes;

 

使用帐号和密码

oConn.Properties("Prompt") = adPromptAlways oConn.Open "Provider=SQLNCLI;Server=myServerAddress;DataBase=myDataBase;

 

使用MARS (multiple active result sets)

Provider=SQLNCLI; Server=myServerAddress; Database=myDataBase; Trusted_Connection=yes; MarsConn=yes;

"MultipleActiveResultSets=true""MARS_Connection=yes"是相同的。

使用ADO.NET 2.0作为MARS的模块。 MARS不支持ADO.NET 1.0ADO.NET 1.1

 

验证网络数据

Provider=SQLNCLI;Server=myServerAddress; Database=myDataBase;Trusted_Connection=yes;Encrypt=yes;

 

 

使用附加本地数据库文件的方式连接到本地SQL Server Express实例

 

Provider=SQLNCLI;Server=./SQLExpress;AttachDbFilename=c:/asd/qwe/mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;

 

使用附加本地数据文件夹中的数据库文件的方式连接到本地SQL Server Express实例

 

Provider=SQLNCLI;Server=./SQLExpress; AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;

 

数据库镜像

Data Source=myServerAddress;Failover Partner=myMirrorServer; Initial Catalog=myDataBase;Integrated Security=True;

 

SqlConnection (.NET)

标准连接

Data Source=myServerAddress; Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

 

Standard Security alternative syntax

Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;

 

受信任的连接

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

 

Trusted Connection alternative syntax

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

 

连接到一个SQL Server的实例

指定服务器实例的表达式和其他SQL Server的连接字符串相同。

Server=myServerName/theInstanceName;Database=myDataBase;Trusted_Connection=True;

 

来自WinCE设备的安全连接

Data Source=myServerAddress; Initial Catalog=myDataBase; Integrated Security=SSPI;User ID=myDomain/myUsername;Password=myPassword;仅能用于CE设备。

 

带有IP地址的连接

Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;

 

使用MARS (multiple active result sets)

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True; MultipleActiveResultSets=true;使用ADO.NET 2.0作为MARS的模块。 MARS不支持ADO.NET 1.0ADO.NET 1.1

 

使用附加本地数据库文件的方式连接到本地SQL Server Express实例

Server=./SQLExpress;AttachDbFilename=c:/asd/qwe/mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;

 

使用附加本地数据文件夹中的数据库文件的方式连接到本地SQL Server Express实例

Server=./SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;

 

使用在SQL Server Express实例上的用户实例

Data Source=./SQLExpress;Integrated Security=true;AttachDbFilename=|DataDirectory|/mydb.mdf;User Instance=true;

 

数据库镜像

Data Source=myServerAddress;Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;

 

Asynchronous processing

Server=myServerAddress; Database=myDataBase; Integrated Security=True; Asynchronous Processing=True;

 

MySQL

 

MyODBC

MyODBC 2.50 本地数据库

Driver={mySQL};Server=localhost;Option=16834;Database=myDataBase;

 

MyODBC 2.50 远程数据库

Driver={mySQL}; Server=myServerAddress;Port=3306; Option=131072;Stmt=; Database=myDataBase; Uid=myUsername; Pwd=myPassword;

 

MyODBC 3.51 本地数据库

Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=myDataBase; User=myUsername;Password=myPassword;Option=3;

 

MyODBC 3.51 远程数据库

Driver={MySQL ODBC 3.51 Driver};Server=data.domain.com;Port=3306; Database=myDataBase; User=myUsername; Password=myPassword;Option=3;

 

OLE DB, OleDbConnection (.NET)

标准

Provider=MySQLProv; Data Source=mydb; User Id=myUsername; Password=myPassword;

 

Connector/Net 1.0 (.NET)

标准

Server=myServerAddress; Database=myDataBase; Uid=myUsername;Pwd=myPassword;

默认端口号是3306

 

指定端口号

Server=myServerAddress; Port=1234;Database=myDataBase; Uid=myUsername; Pwd=myPassword;

 

命名管道

Server=myServerAddress; Port=-1;Database=myDataBase; Uid=myUsername;Pwd=myPassword;

如果端口是-1,意思是告诉驱动程序使用命名管道网络协议来连接数据库。

 

MySqlConnection (.NET)

eInfoDesigns.dbProvider

Data Source=myServerAddress; Database=myDataBase;User ID=myUsername; Password=myPassword; Command Logging=false;

 

SevenObjects MySqlClient (.NET)

标准

Host=myServerAddress; UserName=myUsername; Password=myPassword; Database=myDataBase;

 

Core Labs MySQLDirect (.NET)

标准

User ID=root;Password=myPassword;Host=localhost;Port=3306;Database=myDataBase; Direct=true;Protocol=TCP;Compress=false;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;

 

MySQLDriverCS (.NET)

标准

Location=myServerAddress; Data Source=myDataBase; UserID=myUsername; Password=myPassword; Port=3306;Extended Properties="""";

 

 

Oracle

 

ODBC

新版本

Driver={Microsoft ODBC for oracle}; Server=myServerAddress; Uid=myUsername;Pwd=myPassword;

 

旧版本

Driver={Microsoft ODBC Driver for oracle}; ConnectString=OracleServer.world; Uid=myUsername; Pwd=myPassword;

 

OLE DB, OleDbConnection (.NET)

标准连接

此连接字符串适用了微软的驱动。

Provider=msdaora;Data Source=MyOracleDB; User Id=myUsername; Password=myPassword;

 

受信连接

Provider=msdaora; Data Source=MyOracleDB; Persist Security Info=False; Integrated Security=Yes;

 

标准连接

Oracle提供的驱动。

Provider=OraOLEDB. oracle;Data Source=MyOracleDB; User Id=myUsername; Password=myPassword;

 

受信连接

Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;

 

oracle.DataAccess.Client.OracleConnection

标准

Data Source=TORCL;User Id=myUsername; Password=myPassword;

 

标准安全连接

Data Source=TORCL;Integrated Security=SSPI;

 

使用ODP.NET而不使用tnsnames.ora

Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost) (PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID))); User Id=myUsername;Password=myPassword;

 

oracleConnection, oracle Data Provider, ODP.NET.

System.Data.OracleClient.OracleConnection.

标准

用于8i RC3及以后的版本

Data Source=MyOracleDB;Integrated Security=yes;

 

指定用户名和密码

用于8i RC3及以后的版本

Data Source=MyOracleDB; User Id=myUsername; Password=myPassword; Integrated Security=no;

 

忽略tnsnames.ora

另一种不需要使用DSN的连接方式

SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost) (PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID))); uid=myUsername;pwd=myPassword;

 

使用上面的连接字符串可能会导致Visual Studio报告错误。

如果您在使用中出现了这些问题,请使用下面的这种连接方式。

Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)) (CONNECT_DATA=(SERVICE_NAME=MyOracleSID))); User Id=myUsername; Password=myPassword;

 

使用连接池

如果连接池服务程序找不到已经存在的连接池,它将根据连接字符串创建一个新的池。

否则将循环使用池中已存在的连接。

Data Source=myOracleDB; User Id=myUsername; Password=myPassword;Min Pool Size=10;Connection Lifetime=120; Connection Timeout=60;Incr Pool Size=5;Decr Pool Size=2;

 

Windows身份验证

Data Source=myOracleDB;User Id=/;

 

特权连接

使用SYSDBA

Data Source=myOracleDB;User Id=SYS;Password=SYS; DBA Privilege=SYSDBA;

 

特权连接

使用SYSOPER

Data Source=myOracleDB;User Id=SYS;Password=SYS;DBA Privilege=SYSOPER;

 

密码过期处理过程

当使用一个连接字符串连接数据库后,出现"密码已过期"的错误时。

请执行OpenWithNewPassword命令来提供新密码。

Data Source=myOracleDB;User Id=myUsername;Password=myPassword; oConn.OpenWithNewPassword(sTheNewPassword);

 

Proxy验证

Data Source=myOracleDB; User Id=myUsername; Password=myPassword;Proxy User Id=pUserId; Proxy Password=pPassword;

 

Core Labs oraDirect (.NET)

Standard

User ID=myUsername; Password=myPassword; Host=ora;Pooling=true; Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;

 

Data Shape

MS Data Shape

Provider=MSDataShape.1;Persist Security Info=False;Data Provider=MSDAORA; Data Source=orac;User Id=myUsername; Password=myPassword;

 

 

IBM .Net Data Provider

 

您需要使用 IBM.Data.DB2.iSeries 命名空间

DataSource=myServerAddress;UserID=myUsername; Password=myPassword;DataCompression=True;

 

OLE DB, OleDbConnection (.NET)

IBM Client Access OLE DB 适配器

Provider=IBMDA400;Data Source=MY_SYSTEM_NAME;User Id=myUsername; Password=myPassword;

MY_SYSTEM_NAME是在OperationsNavigator中的系统连接名称。

 

IBM Client Access OLE DB 适配器

Provider=IBMDA400;Data Source=MY_SYSTEM_NAME;User Id=myUsername; Password=myPassword;Default Collection=MY_LIBRARY;

MY_SYSTEM_NAME是系统连接的名称,MY_LIBRARYiSeries Navigatorlibrary的名称。

 

ODBC

IBM Client Access ODBC 驱动

Driver={Client Access ODBC Driver (32-bit)};System=my_system_name; Uid=myUsername; Pwd=myPassword;

 

IBM iSeries Access ODBC 驱动

这个驱动需要比IBM Client Access ODBC的驱动更新。

Driver={iSeries Access ODBC Driver};System=my_system_name; Uid=myUsername; Pwd=myPassword;

 

 

Caché

 

ODBC

标准

DRIVER={InterSystems ODBC};SERVER=myServerAddress; DATABASE=myDataBase; UID=myUsername;PWD=myPassword;

 

特定端口

DRIVER={InterSystems ODBC};SERVER=myServerAddress;PORT=12345; DATABASE=myDataBase; UID=myUsername;PWD=myPassword;

 

特定协议

DRIVER={InterSystems ODBC};SERVER=myServerAddress;PORT=12345; DATABASE=myDataBase; PROTOCOL=TCP;STATIC CURSORS=1;UID=myUsername;PWD=myPassword;

 

 

IBM DB2

 

OLE DB, OleDbConnection (.NET)

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=myUsername; Password=myPassword;

 

APPC

Provider=DB2OLEDB;APPC Local LU Alias=MyAlias;APPC Remote LU Alias=MyRemote; Initial Catalog=MyCtlg;Package Collection=MyPkgCol; Default Schema=Schema;User ID=myUsername;Password=myPassword;

 

IBM提供的OLE DB适配器

TCP/IP

Provider=IBMDADB2;Database=myDataBase; Hostname=myServerAddress; Protocol=TCPIP;Port=50000; Uid=myUsername;Pwd=myPassword;

 

ODBC

标准

Driver={IBM DB2 ODBC DRIVER}; Database=myDataBase;Hostname=myServerAddress; Port=1234;Protocol=TCPIP;Uid=myUsername;Pwd=myPassword;

 

 

Firebird

 

ODBC - IBPhoenix Open Source

标准

Driver=Firebird/InterBase(r) driver;Uid=SYSDBA; Pwd=masterkey; DbName=D:/FIREBIRD/examples/TEST.FDB;

 

.NET - Firebird .Net Data Provider

标准

User=SYSDBA;Password=masterkey;Database=SampleDatabase.fdb; DataSource=localhost;Port=3050;Dialect=3; Charset=NONE;Role=; Connection lifetime=15;Pooling=true;MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0;

 

 

Informix

 

ODBC

Informix 3.30

Dsn=;Driver={INFORMIX 3.30 32 BIT};Host=hostname;Server=myServerAddress; Service=service-name; Protocol=olsoctcp; Database=myDataBase;Uid=myUsername;Pwd=myPassword;

 

Informix-CLI 2.5:

Driver={Informix-CLI 2.5 (32 Bit)};Server=myServerAddress; Database=myDataBase; Uid=myUsername;Pwd=myPassword;

 

OLE DB

IBM Informix OLE DB Provider

Provider=Ifxoledbc.2;Password=myPassword; User ID=myUsername; Data Source=dbName@serverName;Persist Security Info=true;

 

IBM Informix .NET Provider

IBM.Data.Informix.IfxConnection(命名空间)

Database=myDataBase;Host=192.168.10.10; Server=db_engine_tcp; Service=1492; Protocol=onsoctcp;UID=myUsername;Password=myPassword;

 

Ingres

 

ODBC

DSN-less

Provider=MSDASQL.1;DRIVER=Ingres;SRVR=xxxxx;DB=xxxxx;Persist SecurityInfo=False;Uid=myUsername;Pwd=myPassword; SelectLOOPS=N; ExtendedProperties="SERVER=xxxxx;DATABASE=xxxxx;SERVERTYPE=INGRES";

 

 

Interbase

 

ODBC, Easysoft

本地计算机

Driver={Easysoft IB6 ODBC}; Server=localhost ;Database=localhost:C:/mydatabase.gdb; Uid=myUsername; Pwd=myPassword;

 

远程计算机

Driver={Easysoft IB6 ODBC}; Server=myServerAddress; Database=ComputerName: C:/mydatabase.gdb; Uid=myUsername;Pwd=myPassword;

 

ODBC, Intersolv

本地计算机

Driver={INTERSOLV InterBase ODBC Driver (*.gdb)}; Server=localhost; Database=localhost: C:/mydatabase.gdb; Uid=myUsername; Pwd=myPassword;

 

远程计算机

Driver={INTERSOLV InterBase ODBC Driver (*.gdb)}; Server=myServerAddress; Database=ComputerName: C:/mydatabase.gdb;Uid=myUsername; Pwd=myPassword;

 

OLE DB, SIBPROvider

标准

provider=sibprovider;location=localhost:;data source=c:/databases/gdbs/mygdb.gdb; user id=SYSDBA; Password=masterkey;

 

版本 2.x

Provider=SIBPROvider.2; Data Source=localhost:c:/databases/gdbs/mygdb.gdb; Persist Security Info=False;

 

指定字符集

provider=sibprovider;location=localhost:;data source=c:/databases/gdbs/mygdb.gdb; user id=SYSDBA; Password=masterkey; character set=ISO8859_1;

 

指定角色

provider=sibprovider;location=localhost:; data source=c:/databases/gdbs/mygdb.gdb;user id=SYSDBA; Password=masterkey; role=DIGITADORES;

 

 

Lightbase

 

标准连接

标准

User=myUsername;Password=myPassword;UDB=USERBASE;Server=myServerAddress;

 

Paradox

 

ODBC

5.X

Driver={Microsoft Paradox Driver (*.db )}; DriverID=538;Fil=Paradox 5.X; DefaultDir=c:/pathToDb/;Dbq=c:/pathToDb/;CollatingSequence=ASCII;

 

7.X

Provider=MSDASQL.1;Persist Security Info=False; Mode=Read;Extended Properties=DSN=Paradox; DBQ=C:/myDb;DefaultDir=C:/myDb;DriverId=538; FIL=Paradox 7.X; MaxBufferSize=2048;PageTimeout=600;;Initial Catalog=C:/myDb;

请注意:以上的方法仅能从数据库获取数据。

 

Intersolv 3.11 ODBC Driver

7.X

DSN=MyDSN;AUT=1;CT=7;DQ=0;FOC=0;IS=1; PW=myPassword;USF=1;ULQ=1;

 

并不是所有参数都是必填的。大多数参数都能够在DSN中进行设置。

Parameters definition

AUT - ApplicationUsingThreads

CT - CreateType

DB - Database

DSN - DataSourceName

DQ - DeferQueryEvaluation

FOC - FileOpenCache

IS - IntlSort

ND - NetDir

PW - Passwords

USF - UltraSafeCommit

ULQ - UseLongQualifiers

 

OleDbConnection (.NET)

标准

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/myDb;Extended Properties=Paradox 5.x;

注意:您仅需要指定数据库存放的地址而无需指定数据库的名称。

 

SQLBase

 

OLE DB

标准

Provider=SQLBaseOLEDB;Data source=myServerAddress; Location=myDataBase; User Id=myUsername; Password=myPassword;

 

SQLBase .NET Data Provider

标准SQLBase连接

DataSource=myServerAddress; UserId=myUsername; Password=myPassword;Poolsize=5;Connection Lifetime=60;

"Poolsize" 表示多少SQLBase连接被打开,不论它们是否被立即使用。默认值是5

"Connection Lifetime" 表示连接存在多长时间(单位:秒)。默认是60秒。

 

 

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lanhai96

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值