DataSet的使用
java中有result来获取数据集,而c#中有Dataset来获取数据集,那么我们应该怎么获取数据集呢?下面说一下获取数据集的几种方式:
第一种: 把数据库中的数据通过DataAdapter对象填充DataSet。
这种是比较简单的方式,主要是通过dataAdapter中的fille和fillSchema方法来对数据集进行填充。
主要代码如下:
class Test
{
//数据库连接
private OleDbConnection olecon;
//命令
private OleDbCommand olecom;
//适配器
private OleDbDataAdapter oledata;
//创建list集合:只存放student对象
private List<student> list = new List<student>();
//数据库链接类
private void link()
{
//数据库连接语句
string sqlcon = "provider=microsoft.jet.oledb.4.0;data source=./data.mdb";
//创建数据库连接对象
olecon = new OleDbConnection(sqlcon);
//打开数据库连接
olecon.Open();
//插入的sql语句
string addsql = "insert into Data.Test(test_name,test_grade,test_age) values ('张三','软件一班','22')";
//选择的sql语句
string selsql = "select * from Test";
try
{
//创建添加命令,将数据添加到数据库中
olecom = new OleDbCommand(addsql, olecon);
//执行命令
olecom.ExecuteNonQuery();
//测试是否添加成功
Console.WriteLine("保存成功");
//创建选择命令,将数据库中的数据选择
olecom = new OleDbCommand(selsql, olecon);
//得到oledbdataadapter对象,及dataset与数据之间的桥梁
oledata = new OleDbDataAdapter(olecom);
// 创建dataset数据集用来接收数据
DataSet ds = new DataSet();
//把获得的数据赋给dataset数据集
oledata.Fill(ds);
//遍历数据集
for (int i = 0; i < ds.Tables[0].Rows.Count; i++) {
//获取第一个表中第二列的所有值
string name = ds.Tables[0].Rows[i][1].ToString();
//获取第一个表中第三列的所有值
string grade = ds.Tables[0].Rows[i][2].ToString();
//获取第一个表中第四列的所有值
string age = ds.Tables[0].Rows[i][3].ToString();
//通过构造函数构建student对象
student st = new student(name,grade,age);
//将构建的对象添加到list集合中
list.Add(st);
//测试是否添加
Console.WriteLine("添加了"+i+"个");
}
foreach(student st in list){
//遍历list集合输出所有信息
Console.WriteLine("我的姓名:"+st.Name+"我的班级:"+st.Grade+"我的年龄"+st.Age);
}
}
catch (Exception ex)
{
Console.WriteLine("异常++" + ex.Message);
}
finally
{
//关闭数据库
olecon.Close();
//释放资源
olecon.Dispose();
}
}
private static void Main(String[] args)
{
//调用方法
new Test().link();
Console.ReadKey();
}
}
第二种方式 把XML数据流或文本加载到DataSet
由于ADO.NET2.0中增强了与XML文件的结合,所以在这个时候DataSet中的数据可以从XML数据流或文档创建。加载XML数据流和文档到DataSet中是可使用DataSet对象的ReadXml方法。该ReadXml方法读取 XML 流或文档的内容并将数据加载到 DataSet 中。根据所指定的XmlReadMode和关系架构是否已存在,它还将创建DataSet的关系架构。
实现代码如下所示:
DataSet ds= new DataSet("xmlds");
ds.ReadXml("c:\\databases.xml");