1、首先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,如图所示。
2、可以选择一条一条插入方式。输入命令:【INSERT INTO Product(Id,Name,Price) VALUES(newid(),'牛栏1段',160);】即可。
3、可以选择insert bulk命令。输入命令:【 BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_name' FROM 'data_file' }】即可。
4、可以选择INSERT INTO xx select命令。输入命令:【INSERT INTO Product(Id,Name,Price)
SELECT NEWID(),'牛栏1段',160 】即可。
5、可以选择拼接SQL命令。输入命令:【INSERT INTO Product(Id,Name,Price) VALUES
(newid(),'牛栏1段',160)】即可。
1、一条一条插入
INSERT INTO Product(Id,Name,Price) VALUES(newid(),'牛栏1段',160);
INSERT INTO Product(Id,Name,Price) VALUES(newid(),'牛栏2段',260);
......
2、insert bulk
BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_name' FROM 'data_file' }
WITH (
[ BATCHSIZE [ = batch_size ] ],
[ CHECK_CONSTRAINTS ],
[ CODEPAGE [ = 'ACP' | 'OEM' | 'RAW' | 'code_page' ] ],
[ DATAFILETYPE [ = 'char' | 'native'| 'widechar' | 'widenative' ] ],
[ FIELDTERMINATOR [ = 'field_terminator' ] ],
[ FIRSTROW [ = first_row ] ],
[ FIRE_TRIGGERS ],
[ FORMATFILE = 'format_file_path' ],
[ KEEPIDENTITY ],
[ KEEPNULLS ],
[ KILOBYTES_PER_BATCH [ = kilobytes_per_batch ] ],
[ LASTROW [ = last_row ] ],
[ MAXERRORS [ = max_errors ] ],
[ ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ],
[ ROWS_PER_BATCH [ = rows_per_batch ] ],
[ ROWTERMINATOR [ = 'row_terminator' ] ],
[ TABLOCK ],
)
3、INSERT INTO xx select...
INSERT INTO Product(Id,Name,Price)
SELECT NEWID(),'牛栏1段',160
UNION ALL
SELECT NEWID(),'牛栏2段',180
UNION ALL
......
4、拼接SQL
INSERT INTO Product(Id,Name,Price) VALUES
(newid(),'牛栏1段',160)
,(newid(),'牛栏2段',260)
......
其都是通过构建DataTable的方式插入的,而我们知道DataTable是存在内存中的,所以当数据量特别特别大,大到内存中无法一次性存储的时候,可以分段插入。
比如需要插入9千万条数据,可以分成9段进行插入,一次插入1千万条。而在for循环中直接进行数据库操作,是应该尽量避免的。
还有匹配参数形式:
首先,导入命名空间
//using System.Data.SqlClient;//如果是SQL数据库则导入这个
using System.Data.OleDb;//使用access则导入这个
接下来双击添加按钮的那个控件,添加如下代码:
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + System.Web.HttpContext.Current.Server.MapPath(@"..\App_Data\Product.mdb"));
conn.Open();
//执行插入操作
OleDbCommand cmd = new OleDbCommand("insert into Manu (mname,maddress,mphone,mpost,mcontact) values (@mname1,@maddress1,@mphone1,@mpost1,@mcontact1)", conn);
OleDbParameter para1 = new OleDbParameter("@mname1", OleDbType.VarChar, 100);
para1.Value = this.mname1.Text.Trim();
cmd.Parameters.Add(para1);
OleDbParameter para2 = new OleDbParameter("@maddress1", OleDbType.VarChar, 50);
para2.Value = this.maddress1.Text.Trim();
cmd.Parameters.Add(para2);
OleDbParameter para3 = new OleDbParameter("@mphone1", OleDbType.VarChar,30);
para3.Value = this.mphone1.Text.Trim();
cmd.Parameters.Add(para3);
OleDbParameter para4 = new OleDbParameter("@mpost1", OleDbType.VarChar, 30);
para4.Value = this.mpost1.Text.Trim() ;
cmd.Parameters.Add(para4);
OleDbParameter para5 = new OleDbParameter("@mcontact1", OleDbType.VarChar, 30);
para5.Value = this.mcontact1.Text.Trim();
cmd.Parameters.Add(para5);
cmd.ExecuteNonQuery();
conn.Close();
Response.Write("");
conn.Close();
string str3 = "server=.;database=数据库名;integrated security=true";
SqlConnection conn3 = new SqlConnection(str3);
conn3.Open();
SqlCommand cmd = new SqlCommand("insert into 表 (列名,列名,列名) values('数据','数据','数据')", conn3);
cmd.ExecuteNonQuery();
conn3.Close();