数据导入:从文本文件导入用户信息。数据导出:将用户信息导出到文本文件。 带参数的写法 适合登陆使用

题目要求

数据导入:从文本文件导入用户信息。数据导出:将用户信息导出到文本文件。

代码如下:    带参数的写法  适合登陆使用

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.SqlClient;

namespace _91
{
    public partial class Form1 : Form
    {
        string constr = @"Data Source=PC0821NPY\LIU;Initial Catalog=lx;Integrated Security=True";
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            openFileDialog1.FileName = "";
            openFileDialog1.Filter = "文本文件|*.txt|cs文件|*.cs|所有文件|*.*";
            //显示对话框
            // openFileDialog1.ShowDialog();
            DialogResult dr = openFileDialog1.ShowDialog();
            if (dr == DialogResult.OK)
            {
                string[] lines = File.ReadAllLines(openFileDialog1.FileName, Encoding.Default);
                using (SqlConnection conn = new SqlConnection(constr))
                {
                    using (SqlCommand cmd = new SqlCommand())
                    {
                        conn.Open();
                        int i = 0;
                        foreach (string line in lines)
                        {
                            string[] arr = line.Split(new char[] { ',', '' });

                            if (arr.Length == 2)
                            {
                                string sql = "insert into [uuser] (uUserName,uPwd) values (@name,@pwd)";
                                //清空之前的数据
                                cmd.Parameters.Clear();
                                //给sql语句的参数赋值
                                cmd.Parameters.AddWithValue("@name", "arr[0]");
                                cmd.Parameters.AddWithValue("@pwd", "arr[1]");
                                cmd.CommandText = sql;
                                i++;
                                cmd.ExecuteNonQuery();
                            }
                            MessageBox.Show("添加了" + i);
                        }
                    }
                }

            }
        }

        private void button2_Click(object sender, EventArgs e)
        {

        }
    }
}


第二种写法 ,推荐用比较简单

 private void button2_Click(object sender, EventArgs e)
        {
            //1/选择文本文件
            //2/读取文本文件的每一行(每一行就是一个用户)
            //3/把每一行的用户的用户名和密码读出来,拼成一个sql语句
            //4/执行拼好的sql语句


            string connStr = @"Data Source=.\sqlexpress;Initial Catalog=MySchool;Uid=sa;Pwd=sa";

            openFileDialog1.FileName = "";
            openFileDialog1.Filter = "文本文件|*.txt";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                //读取文本文件中所有行(每一行就是一个人)
                string[] lines = File.ReadAllLines(openFileDialog1.FileName, Encoding.Default);

                using (SqlConnection conn = new SqlConnection(connStr))
                {
                    using (SqlCommand cmd = new SqlCommand())
                    {
                        //设置cmd的连接
                        cmd.Connection = conn;
                        //sb连接多个sql语句
                        StringBuilder sb = new StringBuilder();
                        //遍历每一个人,拼成sql语句
                        foreach (var line in lines)
                        {
                            //解析人名和密码
                            string[] arr = line.Split(',','');                           
                            //如果是人名和密码的话(保证数组里有两项)
                            if (arr.Length == 2)
                            {
                                //拼sql语句
                                sb.Append(string.Format("insert into [user] (uUserName,uPwd) values('{0}','{1}');",arr[0],arr[1]));
                            }
                        }
                        //打开数据库
                        conn.Open();
                        //设置cmd要执行的sql语句(多条sql语句)
                        cmd.CommandText = sb.ToString();
                        //执行sql语句,返回受影响的行数
                       int n = cmd.ExecuteNonQuery();
                       MessageBox.Show(n.ToString());
                    }
                }
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {

            //1 输入要保存的文件名
            //2 查询所有用户
            //3 拼接字符串
            //4 保存到文件

            string connStr = @"Data Source=.\sqlexpress;Initial Catalog=MySchool;Uid=sa;Pwd=sa";

            saveFileDialog1.Filter = "文本文件|*.txt";
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                //获取要保存的文件路径
                string path = saveFileDialog1.FileName;
                using (SqlConnection conn = new SqlConnection(connStr))
                {
                    string sql = "select * from [user]";
                    using (SqlCommand cmd = new SqlCommand(sql,conn))
                    {
                        conn.Open();
                        //读取所有用户
                        using (SqlDataReader dr = cmd.ExecuteReader())
                        {
                            //定义集合保存所有从数据库中读出来的用户
                            List<string> users = new List<string>();
                            while (dr.Read())
                            {
                                //读取用户名
                                string name = dr["uUserName"].ToString();
                                //读取用户密码 
                                string pwd = dr["uPwd"].ToString();
                                //把用户名和密码拼起来,添加到集合中
                                users.Add(name + "," + pwd);
                            }
                            //把集合中的元素保存到文件
                            //users.ToArray()把集合转换成数组
                            File.WriteAllLines(path, users.ToArray());
                            MessageBox.Show("保存了" + users.Count);
                        }
                    }
                }
            }
        }
    }
}

 

posted @ 2012-09-01 03:18  小薇林  阅读(362)  评论(0编辑  收藏  举报