奔跑的小河

1.数据库连接

a)Access数据库(OLE DB连接)

Access2007连接

Provider=Microsoft.ACE.OLEDB.12.0;UserID=Admin;Data Source=[路径].accdb;Jet OLEDB:DatabasePassword=;

Access2003连接

Provider=Microsoft.Jet.OLEDB.4.0;Mode=ReadWrite;PersistSecurity Info=False;Data Source=[路径]Provider=Microsoft.Jet.OLEDB.4.0;DataSource=[路径];User Id=admin;Password=;

b)SQL-Server数据库

DataSource=.;Initial Catalog=claa;Integrated Security=TrueProvider=sqloledb;DataSource=Aron1;Initial Catalog=pubs;User Id=sa;Password=123;

注:这里只提供了OLE DB的连接方式,而且根据不同的安全级别也有不同的连接方式,还有ODBC的连接方式,连接字符串都有差异,具体可以MSDN。

2.常用类

a)Connection连接数据库(OleDbConnection, SqlConnection)

连接字符串是以分号(;)分隔的一系列 名称/值 对的选项,这些选项的顺序并不重要,大小写也不重要。

OleDbConnectionconn = new OleDbConnection(“[连接字符串]”);

将连接字符串放到config文件中便于保存和随时修改

<connectionStrings> <add name="Northwind"connectionString=" Microsoft.Jet.OLEDB.4.0;DataSource=[路径];User Id=admin;Password=;"/></connectionStrings>

获取连接字符串:

stringconnStr = ConfigurationManager.ConnectionStrings["Northwind"].ConnectionString;

b)Command执行SQL语句(OleDbCommand,SqlCommand )

属性:

CommandText获取或设置要执行的SQL语句或存储过程

CommandTimeout设置超时时间

CommandType命令类型(Text/StoredProcedure/TableDirect)

Connection一般默认为Null,为与数据源连接。

Parameters SQL语句或存储过程的参数,就是在sql语句中使用一个占位符,然后将值存到ParameterCollection集合中,或者执行存储过程时要传递给存储过程的参数和返回结果要接收的参数。

方法:

ExecuteNonQuery()执行数据库的增、删、改,返回受影响行数。

ExecuteScalar()执行查询,返回首行首列。

ExecuteReader()执行查询,返回DataReader对象。

实例化方式:

OleDbCommandcmd = new OleDbCommand(sql.ToString(), conn);OleDbCommandcmd = conn.CreateCommadn();cmd.CommandText= sql.ToString();

c)DataReader只读、只进的结果集,一条条度数据,连接一直保持着(OleDbDataReader)

d)DataSet内存中的数据集(不分OleDb和Sql)

三种使用DataSet的方式:

通过DataAdapter桥梁用数据源中的数据表数据填充

以编程方式在DataSet 中创建 DataTable、DataRelation 和 Constraint,并使用数据填充表。

使用 XML 加载和保持 DataSet内容。

实例化DataSet:

可以通过调用 DataSet 构造函数来创建 DataSet 的实例。可以选择指定一个名称参数。如果没有为 DataSet 指定名称,则该名称会设置为“NewDataSet”。

DataSetcustomerOrders = new DataSet("CustomerOrders");

e)DataAdapter数据适配器(OleDbDataAdapter, SqlDataAdapter)

DataAdapter填充DataSet:

SqlDataAdaptercustAdapter = new SqlDataAdapter( "SELECT * FROM dbo.Customers",customerConnection);OleDbDataAdapterordAdapter = new OleDbDataAdapter( "SELECT * FROM Orders",orderConnection);DataSetcustomerOrders = new DataSet();custAdapter.Fill(customerOrders,"Customers");ordAdapter.Fill(customerOrders,"Orders");DataRelationrelation = customerOrders.Relations.Add("CustOrders", customerOrders.Tables["Customers"].Columns["CustomerID"], customerOrders.Tables["Orders"].Columns["CustomerID"]);

f)DataTable

DataTable填充DataSet

DataSetcustomerOrders = new DataSet("CustomerOrders");DataTableordersTable = customerOrders.Tables.Add("Orders");DataColumnpkOrderID = ordersTable.Columns.Add("OrderID", typeof(Int32));ordersTable.Columns.Add("OrderQuantity",typeof(Int32));ordersTable.Columns.Add("CompanyName",typeof(string));ordersTable.PrimaryKey= new DataColumn[] { pkOrderID };

注:将一个新的 DataTable 对象添加到该 DataSet 中,然后将三个 DataColumn 对象添加到该表中。最后,该代码将一个列设置为主键列。

g)DataView数据视图,可以对数据表中的数据进行查找和筛选,可用于将数据传递给控件。

3.访问数据库方式

a)DataReader方式

该方式下执行SQL语句Command命令,执行完后将结果一条条地返回。

b)DataAdapter + DataSet方式

该方式是通过DataAdapter这个桥梁,将数据库中返回的所有数据填充到DataSet中。

4.连接池

虽然连接耗时很短,但确实需要时间,如果交互一多显然会影响性能。连接池可以很好滴解决。

人创造奇迹常常是在瞬间,

奔跑的小河

相关文章:

你感兴趣的文章:

标签云: