ADO.net操作数据库

时间:2023-03-08 20:48:46

今天整理硬盘,发现2年前开始着手开始学习C#的学习日记。陆续整理,一是自己的知识梳理梳理,二是希望与大家多多交流,能给初学者带来一定帮助,当然是更高兴的啦。

断线对象

另一类是与数据源无关的断线对象,例如DataSet对象和DataRelation对象,用户可以利用连接对象获取数据源中的原始数据,并且利用断线对象,一次返回给前端用户,前端用户在处理变动数据的过程中,并不需要保持与数据库的连接,当对所有数据完成变动操作之后,再一次通过连接对象将数据返回更新到数据库,因为不需要时时保持与数据库连接,所以能够大大降低所消耗的系统资源。

访问数据库的模式

1) OLEDB

OLEDB模式主要用于OLEDB所支持的数据库。OLEDB数据提供程序通过OleDbConnnection对象提供了使用OLEDB公开数据源的连接。

2) ODBC

ODBC模式主要用于ODBC所支持的数据库。可以通过系统建立DSN来实现对数据库的调用。

3) SqlClient

只用于访问MS Sql Sever数据库,是ADO。Net中比较特殊的组件,当然,MS Sql Severs也是支持OLEDB和 ODBC ,也可以通过OLEDB和 ODBC模式来访问,但是试验证明,SqlClient模式比ODBC OLEDB模式的效率更高。

DataAdapter对象

SqlConnection conn = new SqlConnection
(@"DataSource = .\SQLEXPRESS;AttachDBFilename= |DataDirectory|\Datebase1.mdf; Integrated Security = True; User Instance = True;") SqlConnection conn = new SqlConnection
(”Sever = 服务器名Local(或IP地址));User ID = 用户名;Pwd =密码;DataBase=数据库名称”)

该对象主要负责在Command对象执行完SQL语句后生成并填充DAtaSet和DataTable,而DataSet主要负责存取和更新数据。

连接Access数据库

private void button1_Click(object sender, EventArgs e)
{
string reportPass = Application.StartupPath.Substring(, Application.StartupPath.Substring(Application.StartupPath.LastIndexOf("\\")).LastIndexOf("\\")); reportPass += @"\项目管理系统数据库_2011-06-16";
string Constr = "Provider = Microsoft.Jet>OLEDB.4.0;Data source =" + reportPass;
OleDbConnection conn = new OleDbConnection(Constr);
conn.Open();
if (conn.State == ConnectionState.Open)
{
MessageBox.Show("数据库连接成功");
}
else
{
MessageBox.Show("数据库连接失败");
}
}

SQL连接字符串

SqlConnection conn = new SqlConnection
(@"DataSource = .\SQLEXPRESS;AttachDBFilename= |DataDirectory|\Datebase1.mdf; Integrated Security = True; User Instance = True;") SqlConnection conn = new SqlConnection
(”Sever = 服务器名Local(或IP地址));User ID = 用户名;Pwd =密码;DataBase=数据库名称”)

DataSet 对象表示包括相关表、约束和表间关系在内的整个数据集。

  private void button1_Click(object sender, EventArgs e)
{
//实例SqlConnection对象
SqlConnection conn = new SqlConnection();
//设置连接字符串
conn.ConnectionString = "Sever = local;uid=sa;pwd=;database=db_11";
//打开数据库连接
conn.Open();
SqlCommand cmd = new SqlCommand("select 学生姓名from tb_02 ",conn );
//获取数据适配器
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
//填充Dataset
DataSet ds = new DataSet();
da.Fill(ds);
//绑定Dataset数据
listBox1.DataSource = ds.Table[].DefaultView;
listBox1.DisplayMember = "学生姓名";
//断开连接
conn.Close();

DataTable对象表示内存驻留数据的单个表,其中包括DataColumnCollection类表示的列集合以及由ConstraintCollection类表示的约束集合,这两个集合共同定义表的架构。DataTable对象还包含DataRowCollection类所表示的行的集合,而DataRowCollection类则包含表中的数据,除了其当前状态之外,DataRow对象还会保留其当前版本和初始版本,以标识对行中存储的值得更改。

DataRelationCollection

表示关系,它使一个DataTable对象中的行与另外一个DataTable对象中的行相关联。关系类似于可能存在于关系数据库中的主键列和外键列之间的连接路径。

绑定DataTable数据

listBox1.DataSource = ds.Table[0].DefaultView;

DataReader对象

DataReader对象是一个简单的数据集,用于数据源检索制度数据集,常用于检索大量数据,

DataReader对象只允许以只读、顺向的方式查看其中所存储的数据,提供一个非常有效率的数据查看方式,同时DataReader对象还是一种非常节省资源的数据对象,读者可以参照DataSet对象来学习。

注意:每次打开一个新对象,必须关闭一个DataReader对象,因为它是以独占的方式与数据库交互,否则会接收到其产生的异常。

内置配置文件

-> 添加新项-> 应用程序配置文件

//创建SqlDataAdapter对象实例

SqlDataAdapter  AdapterSelect = new SqlDataAdapter("select *from tb_05",conn);

//创建DataTable实例

DataTable dt = new DataTable();

AdapterSelect.Fill(dt);

//填充控件

dataGridView1.DataSource=dt.DefaultView;

DataTable对象实例

Try

{

。。。。。。

}

//如果出现异常

Catch(Exception ee)

{

MessageBox.Show(ee.Message.ToString());

}