ADO.Net连接不同数据库

1. Access


连接字符串: 

----------------------- Access 2007 -------------------------

//无密码的连接字符串  --MapPath()表示的是当前路径

string connStr = @"Provider=Microsoft.Ace.OleDb.12.0; Data Source=MapPath("XiaoZhen.accdb"); Persist Security Info=False;";

 

//有密码的连接字符串

string connStr = @"Provider=Microsoft.Ace.OleDb.12.0; Data Source=MapPath("XiaoZhen.accdb"); Jet OleDb:DataBase Password='829321';";

 

----------------------- Access 2003 ----------------------------

//无密码的连接字符串  --MapPath()表示的是当前路径

string connStr = @"Provider=Microsoft.Jet.OleDb.4.0; Data Source=MapPath("Northwind.mdb"); Persist Security Info=False;";

 

//有密码的连接字符串

string connStr = @"Provider=Microsoft.Jet.OleDb.4.0; Data Source=MapPath("Northwind.mdb"); Jet OleDb:DataBase Password='829321';";

 

---------------------- 程序代码 --------------------------------

//添加引用

using   System.Data;  

using   System.Data.OleDb;

 

//创建连接对象

using(OleDbConnection conn =new   OleDbConnection(connStr))

{

conn.Open();  //打开连接

…...

//conn.Close();   在这里可以省略 因为用了using语句 跳出这个语句块自然就会关闭

}

 

解释:  

    1. 连接Access数据库需要导入额外的命名空间,所以有了最前面的两条using命令,这是必不可少的!  

    2. connStr这个变量里存放的是连接数据库所需要的连接字符串,他指定了要使用的数据提供者和要使用的数据源。

    3. "Provider=Microsoft.Jet.OleDb.4.0;" 是指数据提供者,这里使用的是Microsoft Jet引擎,也就是Access中的数据引擎,.net就是靠这个和Access的数据库连接的。

    4. "Data   Source=C:\BegASPNET\Northwind.mdb" 是指明数据源的位置,他的标准形式是"Data   Source=MyDrive:MyPath\MyFile.MDB"

 

 

2. SQL Server


连接字符串:

 

string connStr="Data Source=127.0.0.1; initial catalog=Northwind; user id=sa; password=;Connect Timeout=30";  

string connStr="Server=127.0.0.1; initial catalog=Northwind; user id=sa; password=;Connect Timeout=30";  

 

程序代码:

 

//添加引用

using   System.Data;  

using   System.Data.SqlClient;  

 

//创建连接对象

using(SqlConnection conn=new SqlConnection(connStr))

conn.Open();    //打开连接 

…...

//conn.Close();    这句省略 using 语句可以自动释放

}

 

解释:  

  1. "user id=sa" 连接数据库的用户名他还有一个别名"uid",所以这句我们还可以写成"uid=sa"
  2. "password=" 连接数据库的验证密码为空,他的别名为"pwd",所以我们可以写为"pwd="
  3. "initial catalog=Northwind"  使用的数据源为"Northwind"这个数据库,他的别名为"Database",本句可以写成"Database=Northwind"
  4. "Server=SQLServerName" 使用名为"SQLServerName"的服务器,他的别名为"Data   Source","Address","Addr",如果使用的是本地数据库且定义了实例名,则可以写为"Server=(local)\实例名",如果是远程服务器,则将"(local)"替换为远程服务器的名称或IP地址。
  5. "Connect   Timeout=30" 连接超时时间为30秒。

 

 

3. Oracle 

 

Oracle有三种连接方式

 

------------------------------- 第一种 -------------------------------

连接字符串:

string ConnStr="Data Source=sky; user=system; password=manager;";

 

  程序代码:  

//添加引用  

using   System.Data.OracleClient;   //这个命名空间中的类将要被弃用

using   System.Data;

   

//创建连接对象

using(OracleConnection conn=new OracleConnection(ConnStr));

{  

conn.Open();

…...

}

 

解释:

    这是.Net提供的一种访问Oracle数据库的方式,这种方式在4.0之后被弃用。
 

------------------------------- 第二种 -------------------------------

连接字符串:

string ConnStr="Provider=OraOLEDB.Oracle.1; Persist Security Info=True; User ID=dmuser; Password=DHHZDHHZ; Data Source=local; Extended Properties=";

 

程序代码:

//添加引用

using System.Data.OleDb;

using System.Data;

 

//创建连接对象

using (OleDbConnection conn = new OleDbConnection(connstr))

{

conn.Open();

…...

}

 

解释:

    OLE DB数据提供程序支持绝大对数的数据库,它 是由 OLE DB数据提供程序在后台调用各种COM对象来实现数据交互,这可能会影响程序的性能,基本上没有.NET数据提供程序时我们才会用 OLE DB数据提供程序。不同的数据库对应不用的连接字符串。

 

------------------------------- 第三种 -------------------------------

连接字符串:

string ConnStr=@"Data Source=

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = VM-Win7)(PORT = 1521))

(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = local))

);

User ID=dmuser; Password=DHHZDHHZ;"

 

程序代码:

//添加引用

using System.Data;

using Oracle.DataAccess.Client;

 

//创建连接对象

using (OracleConnection conn = new OracleConnection(connstr))

{

conn.Open();

…...

}

解释:

    这是ODP.NET连接方式,是由Oracle提供的数据驱动程序,需要从Oracle官网上下载ODAC包。

  1. Data Source 的值实际是 tnsnames.ora 文件下中的配置格式。
  2. User ID 是用户名。
  3. Password 是密码。

 

 

 

4. MySQL  


程序代码:    

 

//添加引用

using   MySQLDriverCS;    

 

//   建立数据库连接  

using(MySQLConnection DBConn = new MySQLConnection(new MySQLConnectionString("localhost","mysql","root","",3306).AsString))  

{

DBConn.Open();

…...    

}

 

 

5. Excel


加载Excel(读取excel内容)返回值是一个DataSet

 

//加载Excel   

public static DataSet LoadDataFromExcel(string filePath) 

{

try

{

string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+filePath+";

                                Extended Properties='Excel 8.0;HDR=False;IMEX=1'";  

using(OleDbConnection OleConn = new OleDbConnection(strConn)

OleConn.Open();  

String sql = "SELECT * FROM  [Sheet1$]";//可是更改Sheet名称,比如sheet2,等等  

OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);

DataSet OleDsExcle = new DataSet();

OleDaExcel.Fill(OleDsExcle, "Sheet1"); 

}

return OleDsExcle;

catch (Exception err)

{

MessageBox.Show("数据绑定Excel失败!失败原因:" + err.Message, "提示信息",   MessageBoxButtons.OK, MessageBoxIcon.Information);

return null;

}  

}  

 

 

//写入Excel内容,参数:excelTable是要导入excel的一个table

public static bool SaveDataTableToExcel(System.Data.DataTable excelTable, string filePath)  

{

Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.ApplicationClass();  

try  

{  

app.Visible = false;  

Workbook wBook = app.Workbooks.Add(true);  

Worksheet wSheet = wBook.Worksheets[1] as Worksheet;  

if (excelTable.Rows.Count > 0)  

{  

int row = 0;  

row = excelTable.Rows.Count;  

int col = excelTable.Columns.Count;  

for (int i = 0; i < row; i++)  

{  

for (int j = 0; j < col; j++)  

{  

string str = excelTable.Rows[i][j].ToString();  

wSheet.Cells[i + 2, j + 1] = str;  

}  

}  

}  

int size = excelTable.Columns.Count;  

for (int i = 0; i < size; i++)  

{  

wSheet.Cells[1, 1 + i] = excelTable.Columns[i].ColumnName;  

}  

app.DisplayAlerts = false;  //设置禁止弹出保存和覆盖的询问提示框   

app.AlertBeforeOverwriting = false;  

wBook.Save();   //保存工作簿   

app.Save(filePath);  //保存excel文件   

app.SaveWorkspace(filePath);  

app.Quit();  

app = null;  

return true;  

}  

catch (Exception err)  

{  

MessageBox.Show("导出Excel出错!错误原因:" + err.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);  

return false;  

}  

}  

 

 

6. mdf文件


      //连接字符串

       connStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=db.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";

 

        //传入一个select 语句 返回一个数据集

        public static DataSet GetResultDataSet(string sSQL)          

        {

            DataSet ds=new DataSet();

            using (SqlConnection conn = new SqlConnection(connStr))   //创建连接

            {

                conn.Open();   //打开连接

                using (SqlCommand com = conn.CreateCommand())    //创建执行命令

                {

                    com.CommandText = sSQL;

                    using (SqlDataAdapter adpt = new SqlDataAdapter(com))   //

                    {                       

                        adpt.Fill(ds);

                    }

                }

            }

            return ds;

        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值