----------------------
Windows Phone 7手机开发、
.Net培训、期待与您交流! ----------------------
---------------------- Windows Phone 7手机开发、 .Net培训、期待与您交流! ----------------------详细请查看: http://net.itheima.com/
强类型DataSet使用起来很方便,快捷。甚至不需要写任何ADO。net中的语句就可以方便的操作数据库。这里不得不佩服微软的大神们,居然可以封装到如此地步。
但是DataSet也有弱点。因为DataSet相当于在内存中虚拟了一个数据库,所以当我们的数据量很大的时候,他会将你的内存撑爆。
在数据量不大的情况下使用,还是相当方便的
以下是使用强类型的DataSet写的数据导入导出功能。与ExecuteReader相比,代码简洁很多。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using 强类型DataSet数据导入导出.DataSet1TableAdapters;
namespace 强类型DataSet数据导入导出
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
t_winusersTableAdapter adapter = new t_winusersTableAdapter();
强类型DataSet数据导入导出.DataSet1.t_winusersDataTable table = adapter.GetData();
FolderBrowserDialog folder = new FolderBrowserDialog();
if (folder.ShowDialog() != DialogResult.OK)
{
return;
}
//遍历文件夹下所有符合规则的文件,得到所有文件的路径
string[] filenames = Directory.GetFiles(folder.SelectedPath, "*.txt", SearchOption.AllDirectories);
foreach (string file in filenames) //遍历每一个文件
{
using (StreamReader streamReader = new StreamReader(file, Encoding.Default))
{
string line = null;
while ((line = streamReader.ReadLine()) != null)//streamReader.ReadLine()读取每一行,当读取到最后一行时返回null
{
string[] lines = line.Split('|');
table.Addt_winusersRow(lines[0], lines[1], 0);//只是为DataSet中的表插入一条记录,而数据库中的表没有任何变化
}
adapter.Update(table);//更新数据库中的表
}
}
MessageBox.Show("导入成功");
}
private void button2_Click(object sender, EventArgs e)
{
SaveFileDialog saveFile = new SaveFileDialog();
if (saveFile.ShowDialog() != DialogResult.OK)
{
return;
}
using(StreamWriter streamwriter=new StreamWriter (saveFile.FileName,false,Encoding.Default))
{
t_winusersTableAdapter adapter=new t_winusersTableAdapter ();
强类型DataSet数据导入导出.DataSet1.t_winusersDataTable table=adapter.GetData();
foreach (强类型DataSet数据导入导出.DataSet1.t_winusersRow row in table)
{
string result = row.username;
result += "|"+row.password;
streamwriter.WriteLine(result);
}
}
}
}
}
---------------------- Windows Phone 7手机开发、 .Net培训、期待与您交流! ----------------------详细请查看: http://net.itheima.com/