---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! --------------------------------------------
ADO.NET五个主要对象
ADO.NET的五个主要对象:connection /command/dataadapter/dataset/datareader
使用ADO.NET时首先引入数据库程序集:using System.Data.SqlClient;
//要调用数据库的数据,先创建连接
using (SqlConnection 连接名 =newSqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=
|DataDirectory|\用户名.mdf;Integrated Security=True;User Instance=True"))
{
//打开连接
连接名.Open();
//连接创建后,创建命令
using (SqlCommand 命令名 =连接名.CreateCommand())
{
//声明命令的语句
命令名.CommandText = "命令语句";
为防止形成歧义,造成注入漏洞攻击,需要在value中声明一个“‘@’+新变量名”代替变量名
命令名.Parameters.Add(newSqlParameter("value@新变量名",变量名));
//执行SQL命令语句并产生影响,另外要对数据库产生影响,需要在主函数中添加一段代码,让程序去连接项目中的mdf文件,而不是连接bin/Debug下那个。
cmd.ExecuteNonQuery();
}
}
//主函数中所需添加的代码
string dataDir = AppDomain.CurrentDomain.BaseDirectory;
if (dataDir.EndsWith(@"\bin\Debug\")|| dataDir.EndsWith(@"\bin\Release\"))
{
dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
}
//如果命令是读取某一条数据,我们就需要判断数据是否存在,此时要使用datareader:
using (SqlDataReader 读取名 = cmd.ExecuteReader())
{
//判断数据是否存在,即能否读取到
if (读取名.Read())
{
//程序代码
}
else
{
//程序代码
}
}
Datareader相当于放了一个游标在数据库中,直接从数据库中调用语句,优点是不会增加内存占用,缺点是一旦程序断开,就会失去作用,小数量数据时会增加麻烦,所以就引入了dataset和dataadapter,将数据一次性从数据库中读取出来:
//创建DataSet实例
DataSet dataset名 = newDataSet();
//创建dataadapter实例并与命令衔接
SqlDataAdapter dataadapter名 = new SqlDataAdapter(命令);
//将dataadapter得到的数据填充入dataset中
dataadapter名.Fill(dataset名);
实例化datatable从data中获取数据
DataTable 表名=dataset名.Tables[];
最后从datatable表中读取数据并引用。
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! --------------------------------------------