使用ADO.NET访问数据库
来源:互联网 发布:安卓自动接听电话软件 编辑:程序博客网 时间:2024/04/26 07:01
看了刘振岩先生编著的《基于.NET的Web程序设计》,摘录使用ADO.NET访问数据库的方法。
(一) 使用ADO.NET访问数据库的途径之一:
Connection-Command-DataReader-Response.Write
(1)Command对象和DataReader对象结合使用访问数据库,代码如下:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
namespace accessDataBase
{
public class WebForm1 : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
//用Connection对象连接数据库
string connStr="server=ZHB//SQLSERVER;User ID=sa;Pwd=sa;database=northwind";
SqlConnection myConnection=new SqlConnection(connStr);
myConnection.Open();
//用Command对象访问数据库
string queryStr="select top 10 CustomerID,CompanyName,Phone from Customers";
SqlCommand myCommand=new SqlCommand(queryStr,myConnection);
//用DataReader对象读取数据表中的数据,输出并显示数据
SqlDataReader myDataReader=myCommand.ExecuteReader();
Response.Write("使用DataReader访问数据库<hr>");
try
{
while(myDataReader.Read())
{
for(int i=0;i<myDataReader.FieldCount;i++)
{
Response.Write(myDataReader.GetName(i)+":"+myDataReader.GetValue(i)+"<br>");
}
Response.Write("<br>");
}
}
finally
{
//断开和数据库的连接
myDataReader.Close();
myConnection.Close();
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
(2)使用Command对象的ExecuteScalar方法,代码如下:
namespace accessDataBase
{
public class useSqlCommand1 : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
string connStr="server=ZHB//SQLSERVER;User ID=sa;Pwd=sa;database=northwind";
SqlConnection myConnection=new SqlConnection(connStr);
myConnection.Open();
string queryStr="select Count(*) from Customers";
SqlCommand myCommand=new SqlCommand(queryStr,myConnection);
int nCount=(int)myCommand.ExecuteScalar();
Response.Write("使用Command对象的ExecuteScalar方法<hr>");
Response.Write("客户资料总数是:"+nCount);
myConnection.Close();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
(3)使用Command对象的ExecuteNonQuery方法
namespace accessDataBase
{
public class useSqlCommand2 : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
string connStr="server=ZHB//SQLSERVER;User ID=sa;Pwd=sa;database=myWebDB";
SqlConnection myConnection=new SqlConnection(connStr);
string insertStr="INSERT INTO information (title,autyor,content,datetime) VALUES ('ADO.NET','green','ADO.NET的组成',getdate())";
SqlCommand myCommand=new SqlCommand(insertStr,myConnection);
string delStr="DELETE FROM information WHERE title='ADO.NET'";
SqlCommand myDelCommand=new SqlCommand(delStr,myConnection);
string Message=null;
try
{
myConnection.Open();
myDelCommand.ExecuteNonQuery();
myCommand.ExecuteNonQuery();
Message="新记录已插入";
}
catch(Exception ept)
{
Message="未能插入记录:"+ept.ToString();
}
finally
{
myConnection.Close();
}
Response.Write(Message);
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
///<summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
///</summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
(二) 使用ADO.NET访问数据库的途径之二:
Connection-DataAdapter-DataSet-DataGrid
(1)使用DataAdapter对象将数据填充到DataSet中并显示
namespace accessDataBase
{
///<summary>
/// useDataSet 的摘要说明。
///</summary>
public class useDataSet : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
private void Page_Load(object sender, System.EventArgs e)
{
string connStr="server=ZHB//SQLSERVER;User ID=sa;Pwd=sa;database=northwind";
SqlConnection myConnection=new SqlConnection(connStr);
myConnection.Open();
//用Command对象访问数据库
string queryStr="select * from Customers";
SqlDataAdapter myDataAdapter=new SqlDataAdapter(queryStr,myConnection);
DataSet myDataSet=new DataSet();
myDataAdapter.Fill(myDataSet,"Customers");
DataGrid1.DataSource=myDataSet.Tables["Customers"].DefaultView;
DataGrid1.DataBind();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
///<summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
///</summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
(2)将DataSet中改动的数据更新回数据库
namespace accessDataBase
{
///<summary>
/// useDataAdapter 的摘要说明。
///</summary>
public class useDataAdapter : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string connStr="server=ZHB//SQLSERVER;User ID=sa;Pwd=sa;database=myWebDB";
SqlConnection myConnection=new SqlConnection(connStr);
string queryStr="select * from Customers";
SqlDataAdapter myDataAdapter=new SqlDataAdapter(queryStr,myConnection);
DataSet myDataSet=new DataSet();
myDataAdapter.Fill(myDataSet,"information");
//在数据集中插入一条新记录
SqlCommandBuilder mySqlCommandBuilder=new SqlCommandBuilder(myDataAdapter);
//使用CommandBuilder自动生成SQL语句
DataRow myDataRow=myDataSet.Tables["information"].NewRow();
myDataRow["title"]="NewTitle";
myDataRow["author"]="NewAuthor";
myDataRow["content"]="NewContent";
myDataRow["datetime"]=System.DateTime.Now;
myDataSet.Tables["information"].Rows.Add(myDataRow);
myDataAdapter.Update(myDataSet,"information");
Response.Write("新数据已插入!");
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
///<summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
///</summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
- 使用ADO.NET访问数据库
- 使用ADO.NET访问数据库
- 使用ADO.NET访问数据库
- ADO.NET使用存储过程访问数据库
- ADO.NET数据库访问
- ADO.NET数据库访问
- Ado.Net 访问数据库
- ADO.NET访问数据库
- 使用ADO访问数据库
- ASP.NET下使用ADO.NET访问本地数据库
- 通过ADO.NET访问数据库
- ADO.NET数据库访问入门
- 通过ADO.NET访问数据库
- 数据库访问ADO.NET结构图
- ADO.NET数据库访问入门
- 数据库访问ADO.NET结构图
- ADO.NET数据库访问技术
- ADO.NET数据库访问技术
- JDBC 中的 sql 命令格式 当 JDBC 命令得不到执行是需要注意
- Trie
- Python 多线程端口扫描软件
- 字符,字节,编码的介绍
- 我在新桥啊 ,,这里的 山好多啊。。。。
- 使用ADO.NET访问数据库
- 遭遇Trojan-Spy.Win32.Delf.uv,Trojan.PSW.Win32.XYOnline,Trojan.PSW.Win32.ZhengTu等2
- 对 MVC 的项目进行测试需要注意的事项
- XML Schema用法
- 数据类型int跟byte[]数组互转的方法!
- Schema 介绍
- xml schema
- Struts DispatchedAction 的意义 初步理解
- XML Schema 简介