数据库编程一看就明白啦

data providers对象

一. connection对象

connection有两种类型: SQLConnection和OleDbConnection。它们的使用方法是比较类似:在创建连接时在类的构

 

造器里指定连接字符串,然后调用Open方法打开连接

例1:

public void SqlConnection()

{

 string connectionstring="Provider=SQLOLEDB;Data Source=(local);"+"Initial 

 

Catalog=databasename;uid=userName;pwd=password;"+"Integrated Security=SSPI;";

 try

  {

    SqlConnection myConnection=new SqlConnection(connectionString);

  }

  catch(SqlException e)

  {

  }

}

 

例2:

public void OleConnection(string connectionString)

{

  if(connectionString=="")

  {}

  try

  {

   OleDbConnection myConnection= new OleDbConnection();

  myConnection.ConnectionString=connectionString;

  }

  catch(OleDbException e)

  {}

}

 

 

二. Command对象

通过Connection对象连接到数据库之后,就可以使用Command对象对数据库进行操作。一个Command可以用典型的SQL

 

语句来表达,包括执行选择查询来返回记录集,执行行动查询来更新数据库的记录,或者创建并修改数据库的表结

 

构。

Command 对象也有两种类型:SqlCommand和OleDbCommand,分别对应于两种数据源类型。可以通过SqlCommand对象直

 

接操作SQL Server数据库,通过OleDbCommand操作支持ADO Managed Provider的数据源。

使用构造方法来创建Command对象时,必须通过构造函数参数表指定一个SQL语句,该语句用来在数据源上执行。另

 

外还必须传递一个Connection对象,该对象是Command对象和数据源交互的通道。

例1:

SqlCommand sqlcmd = new SqlCommand("Sql语句",sqlconn);

OleDbCommand oledbcmd=new OleDbCommand("Sql语句",oledbconn);

另外,也可以通过Connection对象生成Command对象的实例

例2:

SqlCommand sqlcmd=sqlconn.CreateCommand();

sqlcmd.CommandText="sql语句";

OleDbCommand oledbcmd=oledbconn.CreateCommand();

oledbcmd.CommandText="sql语句";

创建了Command对象后,可以使用它的一系列Execute方法来完成命令的执行。

1. 返回数据流

SqlDataReader dr=sqlcmd.ExecuteReader();

2. 返回一个XmlReader对象

sqlcmd.CommandText="Select * from students";

XmlReader xr=sqlcmd.ExecuteXmlReader();

3.返回单个值

sqlcmd.CommandText = "select count(*) from students";

sqlcmd.ExecuteScalar();

4.不希望返回值

sqlcmd.CommandText = "delete * from students where age=20";

sqlcmd.ExecuteNonQuery();

 

Command对象不仅可以在数据源上执行SQL语句,也可以调用数据源提供的存储过程。

 

三. DataReader 对象

使用Connection 对象和Command对象来同数据库连接并交互后,有两种办法来访问获得的结果,一是使用

 

DataReader来逐行地从数据源获取数据并处理,一是使用DataSet对象来将数据放置到内存中进行处理。

不可能使用DataReader对象的构造函数来创建一个DataReader,这是因为DataReader没有公共的构造方法。

DataReader和数据源类型紧密相连,也有两种类型:SqlDataReader和OleDbDataReader,分别对应于SQL Server数据

 

源和OLE DB数据源。

SqlDataReader sqldr=sqlcmd.ExecuteReader();

while(sqldr.Read())

  Console.WriteLine(sqldr.GetString(3));

GetValue方法获得一个对象,对象的类型为该列数据的原始类型和格式。

DataReader对象具有索引器,因此可以使用DataReaderObject[int]或DataReaderObject["ColumnName"]的形式来访

 

问各个列的数据。

 

 

四. DataAdapter对象

通过DataAdapter对象建立,初始化DataTable(数据表),从而和DataSet对象结合起来在内存中存放数据。

 

DataAdapter对象能隐藏和Connection,Command对象沟通的细节。

DataAdapter对象允许将DataSet对象中的数据保存到数据源,也可以从数据源取出数据。同理,也可以对底层数据

 

保存体进行数据的添加、删除或修改操作。

DataAdapter对象包含4个不同类型的Command.

1).SelectCommand:用来取得数据源中的记录。

2).InsertCommand:用来添加记录到数据源。

3).UpdateCommand:用来更新数据源中的记录。

4).DeleteCommand:删除数据源中的记录。

下面两段代码根据数据源的不同分别使用不同的DataAdapter对象。

1.通过SqlDataAdapter对象进行查询:

public DataSet SelectSqlSrvRows(DataSet dataset, string connection, string query)

{

  SqlConnection conn=new SqlConnection(connection);

  SqlDataAdapter adapter=new SqlDataAdapter();

  adapter.SelectCommand=new SqlCommand(query,conn);

  adapter.Fill(dataset);

  return dataset;

}

2. 通过OleDbDataAdapter对象进行查询:

public DataSet SelectOleDbSrvRows(DataSet dataset,string connection,string query)

{

  OleDbConnection conn=new OleDbConnection(connection);

  OleDbDataAdapter adapter=new OleDbDataAdapter();

  adapter.SelectCommand=new OleDbCommand(query, conn);

  adapter.Fill(dataset);

  return dataset;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值