postgresql(2) C#如何将批量将数据记录添加到数据库

  这里使用C# ADO.NET进行对于postgresql数据库的控制,,实现需要引入Mono.Security.dll,Npgsql.dll,网上有很多博客相关的,这里不过多介绍。(推荐一篇博客https://www.cnblogs.com/PowerOfHeart/p/7138003.html)

 之后如何将批量大规模数据导入数据库中呢,比如说你现在有一个txt文件里面全是记录,如何将这个txt存入到postgresql数据库中?

  这里采用的是使用dataset,建立一张在内存中存储的表,之后使用DataAdapter将DataSet更新到数据库源文件中。

案例:建构批量的图片路径导入数据库中

            string ConStr = @"";//连接数据库字符串
            NpgsqlConnection conn = new NpgsqlConnection(ConStr);
            // 打开一个数据库连接,在执行相关SQL之前调用  
            conn.Open();
            
            //创建数据表
            DataSet myDataSet = new DataSet();
            DataTable myDataTable = new DataTable("pictures");
            myDataSet.Tables.Add(myDataTable);

           

            //设置字段
            DataColumn myColumn1 = myDataTable.Columns.Add("viedoID",Type.GetType("System.Int64"));
            myDataTable.Columns.Add("Time", Type.GetType("System.Int64"));
            myDataTable.Columns.Add("picturePath",Type.GetType("System.String"));

            //数据插入

            string[] files;

            files=Directory.GetFiles(@"");//这里获取的是文件夹下的所有文件
            int timestamp = 1;

            for (int i = 0; i <= files.Length - 1; i++)
            {
                
                DataRow myRow = myDataTable.NewRow();
                //重点在这里,对数据进行循环插入,具体你要插入什么数据,自己读取,之后放在DataSet里面
                myRow["viedoID"] = 0;
                myRow["time"] = timestamp;
                myRow["picturePath"]="image/0/"+timestamp.ToString()+".jpg";
                timestamp++;

                myDataSet.Tables[0].Rows.Add(myRow);

                dataGridView1.DataSource = myDataSet.Tables["pictures"];
            }

           string mySQL = "SELECT * FROM pictures";
           NpgsqlDataAdapter myAdapter = new NpgsqlDataAdapter(mySQL, conn); 
           NpgsqlCommandBuilder myCommendBuilder = new NpgsqlCommandBuilder(myAdapter);
            //更新
           myAdapter.Update(myDataSet, "pictures");

           conn.Close(); 

你可能感兴趣的:(postgresql)