c#向数据库插入数据的各种方法

如题(越详细越好)
2024-10-27 14:20:01
推荐回答(4个)
回答1:

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)】即可。

回答2:

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循环中直接进行数据库操作,是应该尽量避免的。

回答3:

还有匹配参数形式:
首先,导入命名空间
//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();

回答4:

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();