C#(7):ADO.NET进行数据库编程

原创 2006年05月29日 15:45:00

建立简单数据库程序:
1打开数据库连接
2执行查询语句并取回记录
3关闭数据库连接
-------------------
1打开数据库连接
  ADO.NET Connection对象;
  using SD=System.Data;
  using MSA=System.Data.OleDb;
  using SWF=System.Windows.Froms;

  string sConnect;
  sConnect=string.Format("Provider={0};Data Source={1}{2}",
 "provider=Microsoft.Jet.OLEDB.4.0;",
  System.AppDomain.CurrentDomain.BaseDirectory,
  "Sales.mdb");
MSA.OleDbConnection dbConn;
dbConn=new MSA.OleDbConnection(sConnect);
dbConn.open();
SWF.MessageBox.Show(dbConn.State.ToString());

2执行查询和取回数据
Command and Reader 对象:

string sql; BankCustomer c;
sql="Select*From Customers Order By LastName Asc,FirstName ASC;";

MSA.OleDbCommand dbCmd;
dbCmd=new MSA.OleDbCommand(sql,dbConn);

MSA.OleDbDataReader dbReader;
dbReader=dbCmd.ExecuteReader();

while(dbReader.Read())
{
  c=new BankCustomer(dbReader["FirstName"].ToString(),
                     dbReader["LastName"].ToString(),
              System.Convert.ToDecimal(dbReader["AccBalance"]));
   Globals.Customers.Add(c);
}

3 关闭数据库连接
dbReader.Close();
dbConn.Close();
SWF.MessageBox.Show(dbConn.State.ToString());

ADO.NET体系结构
ADO.NET 基于Data Provider
  Data Provider 封装特定数据库的细节信息
    .net programmer ---ADO.NET---Data Provider---DB
Data provider有sql server and oracle
              oledb odbc
对象模型
不同的数据库之间
  1  相同的编程模型,不管使用何种数据库
 2 不同的数据库连接字符串
 3 不同的名称空间和类
    System.Data.SqlClient.SqlConnection
    System.Data.OracleClient.OracleConnection
   System.Data.Odbc.OdbcConnection
   etc.
Executive概要

 几种访问数据库的方式
   连接的,读取并返回一个值  ExecuteScalar()
   连接的,只读,单向        ExecuteReader()
   连接的 ,只写             ExecuteNonQuery()
   非连接的,读写            DataSets

ExecuteScalar()

string sql;
sql=string.Format("Select AcctBalance From Customers Where CID={0};",cid);

Sql.SqlCommand dbCmd;
dbcmd=new SQL.sqlCommand(sql,dbConn);

decimal balance;
balance=System.Convert.ToDecimal(dbCmd.ExecuteScalar());

DataSet

foreach(System.Data.DataRow row in ds.Table["Table"].Rows)
{
   c=new BankCustomer(row["FirstName"].ToString(),
                     row["LastName"].ToString(),
                   System.Convert.ToDecimal(row["AccBalance"]));
            Globals.Customers.Add(c);
            
}

绑定到DataGrid
this.dataGrid1.SetDataBinding(ds,"Table")

ExecuteNonQuery
写入数据库,插入,更新,和删除来对数据库进行操作

String sql;int rows;
sql.string.Format("Delete From Customers where..");
SQL.SqlCommand dbCmd;
dbCmd=new SQL.SqlCommand(sql,dbConn);

dbConn.Open()
rows=dbCmd.ExecuteNonQutery();
dbConn.Close();
if(rows!=1)
  throw new System.ApplicationException("Delete failed?!");

参数化查询
Select FirstName,LastName From Customers where CIC=@CID
Sql="Select*From Customer Where CID=@CID order By LastName Asc, FirstName Asc;";
SQL.SqlCommand dbcmd;
dbCmd=new SQL.SqlCommand(sql,dbConn);
dbCmd.Parameters.Add("@CID",SqlDbType.BigInt);
dbCmd,Parameters[0].Value=1;
dbReader=dbCmd.ExecuteReader();

调用存储过程
Create PROCEDURE GetCustomer (@CID BigInt) AS
Select FirstName,LastName,AcctBalance From Customers Where CID = @CID
RETURN
SQL.SqlCommand dbCmd =dbConn.CreateCommand();
dbCmd.CommandText = "GetCustomer";
dbCmd.CommandType = CommandType.StoredProcedure;
dbCmd.Parameters.Add("@CID", SqlDbType.BigInt);
dbCmd.Parameters[0].Value = 1;
dbReader = dbCmd.ExecuteReader();

Transaction中执行查询
Command对象的BeginTransaction来创
建一个Transaction对象
SQL.SqlTransaction txn = dbConn.BeginTransaction();

string strSQL = "INSERT INTO Customers

VALUES(100,'Hui','Yu',1000000,1000000,'01-Jan-2005','money')";

SQL.SqlCommand dbCmd;

dbCmd = new SQL.SqlCommand(strSQL, dbConn,txn);

int intRecord = dbCmd.ExecuteNonQuery();

if(intRecord ==1)
{
   SWF.MessageBox.Show( "UpdateSuccessful");txn.Commit();
}
  else
 {
  SWF.MessageBox.Show( "Update Failed"); txn.Rollback();
}

相关文章推荐

ADO.NET进行数据库编程

  • 2013年09月23日 22:37
  • 34KB
  • 下载

使用ADO.NET对SQL Server数据库进行访问

在上一篇博客中我们给大家简单介绍了一下VB.NET语言的一些情况,至于理论知识的学习我们可以利用VB的知识体系为基础,再将面向对象程序设计语言的知识进行融合便可进行编程实战。          如果我...

c#利用ado.net进行数据库开发

  • 2015年11月18日 10:25
  • 4KB
  • 下载

VS C# ADO.NET代码连接Access数据库

在Visual Studio2013 C#中以编程方式操作Access数据库,一般使用OleDb进行连接: 1.首先添加两个引用(使用using): using System.Data.OleDb; ...

c#数据库操作DataGridView控件的使用,ADO.NET

适合初学者,0基础; 题目: 利用DataGridView控件和ADO.NET完成数据的显示,删除,修改等; 最终运行的效果如图所示: 步骤: 1.首先同样步骤:打开vs2010,Fil...

c#操作sql server数据库(ADO.net基础)

using (SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\v11.0; AttachD...

C# ADO.NET_数据库操作的封装

1.App.config                             providerName="System.Data.SqlClient" />   ...

C#使用Ado.Net读写数据库

记性不好,记几个C#读取显示数据库资料的方式,以便随时取用   try { String connStr = Confi...
  • gyming
  • gyming
  • 2013年12月24日 17:26
  • 11880
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#(7):ADO.NET进行数据库编程
举报原因:
原因补充:

(最多只允许输入30个字)