往数据库中导入数据

发布于:2024-11-28 ⋅ 阅读:(19) ⋅ 点赞:(0)

第一步:  Form1.cs

namespace Dome17_数据库导入导出数据
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // stringBuilder 改写
            StringBuilder sb = new StringBuilder();


            // 打开对话框
            OpenFileDialog ofd = new OpenFileDialog();
            // Console.WriteLine(ofd.FileName); // FileName获取选中文本的路径

            // 设置对话框的过滤文件
            ofd.Filter = "文本文件|*.txt|所有文件|*.*";


            // 判断对话框是否选择了文件
            if(ofd.ShowDialog() == DialogResult.OK)
            {
                // 2. 获取文件的路径
                string path = ofd.FileName;

                // 3. 读取文件数据
                string[] list1 = File.ReadAllLines(path);

                string conStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;

                int count = -1;

                // 5. 操作数据库
                using (SqlConnection conn = new SqlConnection(conStr))
                {
                    conn.Open();

                    using (SqlCommand cmd = conn.CreateCommand())
                    {
                        // 4. 格式化数据
                        foreach (var item in list1) 
                        {
                            string[] newLines = item.Split(new char[] { ',' },
                            StringSplitOptions.RemoveEmptyEntries);

                            string className = newLines[0];
                            string classDes = newLines[1];

                            // 拼接 sql
                            // string sql = "insert into MyClasses VALUES (@name, @des)";

                            // 在给 Paremeters 添加数据之前 先要清空数据
                            // cmd.Parameters.Clear();

                            // cmd.CommandText = sql;
                            // cmd.Parameters.AddWithValue("@name", className);
                            // cmd.Parameters.AddWithValue("des",classDes);

                            // 使用 stringBuilder 对象拼接字符串 (结尾处一定要加分号)
                            // 每次循环的时候都把sql语句加到sb对象中
                            sb.Append(string.Format("insert into MyClasses values ('{0}','{1}');", className, classDes));

                            
                        }
                        cmd.CommandText = sb.ToString();

                        count = cmd.ExecuteNonQuery();
                        MessageBox.Show("一共插入了"+ count +"条数据");
                    }
                }
            }
        }
    }
}

第二步: 写一个 .txt 文件

2210,123456
2211,1234
2212,12

第三步: 完成数据库