ADO.NET访问数据库 学习记录(一)

Web.config配置文件
创建一个连接字符串

<configuration>
  <appSettings>
   <add key="conStr" value="server=(local);database=OnlineShop;uid=sa;pwd=sa123"/>
  </appSettings>
  <connectionStrings/>
</configuration>

1.查询商品信息的操作

using System.Data.SqlClient;
using System.Configuration;//引入命名空间,读取配置文件
public partial class _Default: System.Web.UI.Page
{
	protected void Page_Load(object sender,EventArgs e)
	{
		try
		{
			String sqlConnect = System.Configuration.ConfigurationManager.AppSettings["constr"];
			SqlConnection conn = new SqlConnection(sqlConnect);
			conn.Open();//打开连接
			
			SqlCommand cmd = new SqlCommand("select * from Product",conn);//or (sqlcmd,conn).当然这两个参数也可以省略,可通过CommandText属性和Commaed属性来指定
			                                                             //("select * from Product where Description ='洗发水'",conn);
			SqlDataReader rdr = cmd.ExecuteReader();//执行查询并返回结果到SqlDataReader对象
			
			while(rdr.Read())
			{
				Response.Write(rdr["productID"].ToString());//显示查询数据
				Response.Write(" " + rdr[1].ToString());
				Response.Write(" " + rdr["Description"].ToString());
				Response.Write(" " + rdr["Price"].ToString());
				Response.Write("<br>");
				
				rdr.Close();
				conn.Close();//关闭数据库
			}
		}
		catch(Exception ex)
		{
			Response.Write(ex.ToString());
		}
	}
}

2.添加商品操作
首先要构造SqlCommand对象,然后通过SqlCommand对象中的ExecuteNonQuery方法来执行商品的添加。

using System.Data.SqlClient;
using System.Configuration;//引入命名空间,读取配置文件
public partial class _Default: System.Web.UI.Page
{
	protected void Page_Load(object sender,EventArgs e)
	{
		try
		{
			String sqlConnect = System.Configuration.ConfigurationManager.AppSettings["constr"];
			SqlConnection conn = new SqlConnection(sqlConnect);
			conn.Open();//打开连接
			
			String sqlcmd = "insert into Product(Name,Description,Price)values('营养快线','饮料','4.5')";
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = sqlcmd;//通过属性对SqlCommand对象进行配置
            cmd.Connection = conn;
            cmd.ExecuteNonQuery();//通过执行方法向数据库提交插入操作
	
		    conn.Close();//关闭数据库
			}
		}
		catch(Exception ex)
		{
			Response.Write(ex.ToString());
		}
	}
}

3.修改商品的操作

String sqlcmd = "update Product set Description  = '食品' where Name= '营养快线'";
SqlCommand cmd = new SqlCommand();
cmd.CommandText = sqlcmd;
cmd.Connection = conn;
cmd.ExecuteNonQuery();

conn.Close();

4.删除商品的操作

String sqlcmd = "delete feom product where Name ='舒肤佳'";
SqlCommand cmd = new SqlCommand(sqlcmd);
cmd.Connection = conn;
cmd.ExecuteNonQuery();

conn.Close();

小结:对商品的添加,修改和删除操作,采用的都是Sqlcommand对象的ExecuteNonQuery方法。
在进行数据库操作的时候,当需要对数据库进行只读操作时,使用SqlCommand对象的ExecuteReader方法,并返回一个DataReader对象。当需要对数据库进行写操作时,使用的Sqlcommand对象的ExecuteNonQuery方法。

DataAdapter 和 DataSet
DataSet主要用来存放从数据库中提取的数据。它的功能实现还需要DataAdapter对象做支撑,它是DataSet对象和数据库之间的桥梁。主要是从数据库中检索数据并填充Dataset对象或者把用户对Dataset对象做出的更改写入到数据库。
每次从数据库检索数据填充Dataset,或者通过Dataset来改变数据时,DataAdapter提供了两种格式之间的转换。
DataAdapter对象通过Fill方法把数据填充到Dataset对象中;在对数据完成添加,删除或修改后通过update方法更新数据库。
注:Dataset是以非连接的模式工作的。在数据填充到Dataset后,Dataset将不再保持与数据库的连接。
Dataset数据集包含表,表间关系和主外键约束等。
Datatable表示数据表,在Datatable对象中又包含了字段(Columns)和记录(Rows)。Dataset对象可以包含多个Datatable对象→DataTableCollection. 多个DataTable之间的主外键关系用DataRelation对象来表示。
SQL Server的数据库进行操作时,DataAdapter对象为SQLDataAdapter。

1.使用Dataset查询商品
在网上商店中可以使用Dataset保存数据库中的商品信息,然后通过页面显示控件显示出来。这是SQLDataAdapter对象通过Fill来完成的。
代码展示了SqlDataAdapter对象如何将商品数据信息填充到Dataset对象中。

using System.Data.SqlClient;
public partial class _Default:
System.Web.UI.Page
{
	protected void Page_Load(object sender,EventArgs e)
	{
		DataSet ds = new DataSet();
		
		try
		{
			String sqlConnect = "server=(local);database=OnlineShop;uid=sa;pwd=sa";
			SqlConnection conn = new SqlConnection(sqlConnect);
			conn.Open();
			
			SqlDataAdapter sda = new SqlDataAdapter("select * from Product",conn);//初始化SqlDataAdapter对象
			sda.Fill(ds);//将Dataset作为SqlDataAdapter对象的Fill方法的参数,完成填充功能
			conn.Close();
		}
		catch(SqlException ex)
		{
			Response.Write(ex.ToString());
		}
		
		GridView1.DataSource = ds.Table[0];//绑定GridView控件
		GridView1.DataBind();//与DataReader对象不同的是,GridView完全不需要通过编写循环代码来显示,直接通过绑定操作DataBind就可以完成显示功能
	}
}

2,使用Dataset更新商品
首先更新Dataset数据集中的内容,
其次通过Updata方法来实现对数据库的更新。

using System.Data.SqlClient;
public partial class _Default:
System.Web.UI.Page
{
	protected void Page_Load(object sender,EventArgs e)
	{
		DataSet ds = new DataSet();
		
		try
		{
			String sqlConnect = "server=(local);database=OnlineShop;uid=sa;pwd=sa";
			SqlConnection conn = new SqlConnection(sqlConnect);
			conn.Open();
			
			SqlDataAdapter sda = new SqlDataAdapter("select * from Product",conn);//初始化SqlDataAdapter对象
			
			SqlCommandBuilder sbd = new SqlCommandBuilder(sda);//创建用于更新数据库的SQL语句
			
			sda.Fill(ds);//将Dataset作为SqlDataAdapter对象的Fill方法的参数,完成填充功能
			
			DataRow addNew = ds.Tables[0].NewRow();//创建新的行对象
			addNew["Name"] = "农夫山泉";//对列赋值
			addNew["Description"] = "饮料";
			addNew["Price"]=1.20;
			ds.Tables[0].Rows.Add(addNew);//Add()将新行添加到Dataset数据集ds中
			sda.Update(ds);//update方法更新数据库
			
			conn.Close();
		}
		catch(SqlException ex)
		{
			Response.Write(ex.ToString());
		}
	
	}
}

3.同样,通过Dataset实现商品的修改和删除需要先对Dataset中的数据进行相应的操作,然后通过Updata同步数据库。在修改和删除数据的过程中,都需要找到当前需要操作的行,即商品记录。

DataRow findRow = ds.Tables[0].Rows.Find("2");//表示找到商品编码为2的商品
if(findRow != null)
{
  findRow["Name"] = "searce";//修改
  //findRow.Delete(); 删除
}
sda.Updata(ds);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值