您的位置:首页 > 数据库

访问数据库结合使用DataSet对象和DataAdapter对象

2016-01-15 11:09 411 查看
           DataSet相当于一个小型的关系数据库。

           DataAdapter对象是DataSet对象和数据源之间联系的桥梁。

           下面的代码,分别向大家展示:1数据读取到DataSet中后,在显示的工程中进行修改,数据库记录不变,2直接利用Dataet中修改过的值,去更新数据库

            using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//页面首次加载的时候连接数据库,读取相关信息
if (!IsPostBack)
{
//获取Connection对象,与数据库进行连接
SqlConnection myConn = GetConnection();
myConn.Open();

//SQL语句从tb_News表中查询所有字段记录
string sqlStr = "select * from tb_News ";

//利用SQL语句和Connection对象得到SQLDataAdapter对象
SqlDataAdapter myDa = new SqlDataAdapter(sqlStr, myConn);

//新建一个DataSet对象,并把Adapter对象填充进去
DataSet myDs = new DataSet();
myDa.Fill(myDs);

// 遍历DataSet,对每一条记录进行长度的辨析
for (int i = 0; i <= myDs.Tables[0].Rows.Count - 1; i++)
{
myDs.Tables[0].Rows[i]["NewsContent"] = SubStr(Convert.ToString(myDs.Tables[0].Rows[i]["NewsContent"]), 5);

}

//绑定DataSet上的数据到GridView上
GridView1.DataSource = myDs;
GridView1.DataKeyNames = new string[] { "NewsID" };
GridView1.DataBind();

//数据显示完毕,断开连接,释放系统资源
myDa.Dispose();
myDs.Dispose();
myConn.Close();
}
}

//利用WebConfig的配置文件信息,建立并得到一个Connection对象
public SqlConnection GetConnection()
{
string myStr = ConfigurationManager.AppSettings["ConnectionString"].ToString();
SqlConnection myConn = new SqlConnection(myStr);
return myConn;
}

/// <summary>
/// 使用DataSet中的数据更新数据库
/// </summary>
protected void bind()
{
//连接字符串及SQL语句
SqlConnection myConn = GetConnection();
myConn.Open();
string sqlStr = "select * from tb_News ";
SqlDataAdapter myDa = new SqlDataAdapter(sqlStr, myConn);
//创建DataSet对象
DataSet myDs = new DataSet();
//创建SqlCommandBuilder对象,并和SqlDataAdapter关联
SqlCommandBuilder builder = new SqlCommandBuilder(myDa);
myDa.Fill(myDs, "News");
for (int i = 0; i <= myDs.Tables["News"].Rows.Count - 1; i++)
{
myDs.Tables["News"].Rows[i]["NewsContent"] = SubStr(Convert.ToString(myDs.Tables["News"].Rows[i]["NewsContent"]), 5);

}
//从DataSet更新SQL Server数据库
myDa.Update(myDs, "News");
GridView1.DataSource = myDs;
GridView1.DataKeyNames = new string[] { "NewsID" };
GridView1.DataBind();
myDa.Dispose();
myDs.Dispose();
myConn.Close();

}

/// <summary>
/// 用于截取指定长度的字符串内容
/// </summary>
/// <param name="sString">用于截取的字符串</param>
/// <param name="nLeng">截取字符串的长度</param>
/// <returns>返回截取后的字符串</returns>
public string SubStr(string sString, int nLeng)
//如果给出的字符长度小于指定长度,直接返回
{
if (sString.Length <= nLeng)
{
return sString;
}

//否则对给定的字符串进行截取后返回
string sNewStr = sString.Substring(0, nLeng);
sNewStr = sNewStr + "...";
return sNewStr;
}
}

            注释写的太详细了,弄的我觉得多说一句话都浪费,所以我就不说了,哈哈~

           刚刚突然想起来,姥姥快过生日了,查查日历,竟然是昨天。。。之前姥爷过生日我就么有送祝福,以后要记得农历的日期  今天农历是腊月初六

           要做的事情,要爱的人,从现在开始,爱很浓时光却很瘦,不要等到想爱的时候发现只剩下后悔。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息