使用ADO.NET高速向SqlServer中插入数据

高速向数据库中插入数据

如果id使用GUID,要注意了,GUID生成的36位唯一标识

------------------------------------------------------------

            bool b = false;

            Console.WriteLine(Convert.ToInt32(b));

测试得知,C#中bool类型true是1,falses是0。

而SQLSERVER数据库中,bit类型true是1,false是0

//往数据库写入bit值,不支持0/1,只支持true/false

往数据库写入bit值,不支持0/1,只支持true/false

注意的是:内存表类型最好和数据库类型对应。最好是将主键的自动增长取消。现在一般也没有采用自动增长做主键了

---------------------------------------------------------------------

            //一次性把所有数据都插入进去,将所有的数据都放入到datatable中,然后一次性提交给数据库

            DataTable table = new DataTable();    //先建立一个空表
            table.Columns.Add("UserId");
            table.Columns.Add("username");
            table.Columns.Add("password");
            table.Columns.Add("age");
            table.Columns.Add("Mail");
            table.Columns.Add("Phone");
            table.Columns.Add("status");
            //使用循环将数据填充到空表中
            for (int i = 15; i <= 1000; i++)
            {
                DataRow row = table.NewRow();
                row["UserId"] = i + "d";
                row["username"] = "Test" + i;
                row["password"] = i.ToString();
                row["age"] = i;
                row["Mail"] = i + "[email protected]";
                row["Phone"] = i.ToString();

                row["status"] = true;

//这里的判断多余,反正是测试数据,直接写死true

                /*if (i % 2 == 0)

                {
                    row["status"] = true;
                }
                else
                {
                    row["status"] = false;
                }*/
                table.Rows.Add(row);
            }
            string conn = "Server=127.0.0.1;Database=Test;user id=sa;password=789654";
            using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn))
            {
                bulkCopy.DestinationTableName = "t_users";//表名
                bulkCopy.ColumnMappings.Add("UserId", "UserId");
                bulkCopy.ColumnMappings.Add("username", "UserName");//第一个是table中的列,第二个是数据库中的列,区分大小写
                bulkCopy.ColumnMappings.Add("password", "PassWord");
                bulkCopy.ColumnMappings.Add("age", "Age");
                bulkCopy.ColumnMappings.Add("Mail", "Mail");
                bulkCopy.ColumnMappings.Add("Phone", "Phone");
                bulkCopy.ColumnMappings.Add("status", "Status");//往数据库写入bit值,不支持0/1,只支持true/false
                bulkCopy.WriteToServer(table);
            }
            Console.WriteLine("OK");
            Console.ReadKey();

猜你喜欢

转载自blog.csdn.net/asdtp/article/details/80629567