黑马程序员--强类型DataSet数据导入导出

本文介绍如何利用强类型DataSet进行数据的高效导入和导出操作,包括使用DataSet1TableAdapter获取数据,遍历文件夹下所有符合规则的文件并导入数据,以及将数据库中的数据导出为文本文件的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

强类型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/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值