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 语句可以自动释放
}
解释:
- "user id=sa" 连接数据库的用户名, 他还有一个别名"uid",所以这句我们还可以写成"uid=sa"。
- "password=" 连接数据库的验证密码为空,他的别名为"pwd",所以我们可以写为"pwd="。
- "initial catalog=Northwind" 使用的数据源为"Northwind"这个数据库,他的别名为"Database",本句可以写成"Database=Northwind"。
- "Server=SQLServerName" 使用名为"SQLServerName"的服务器,他的别名为"Data Source","Address","Addr",如果使用的是本地数据库且定义了实例名,则可以写为"Server=(local)\实例名",如果是远程服务器,则将"(local)"替换为远程服务器的名称或IP地址。
- "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包。
- Data Source 的值实际是 tnsnames.ora 文件下中的配置格式。
- User ID 是用户名。
- 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;
}