三个步骤:
第一步:声明数据库连接对象:
Sqlconnection connection=new Sqlconnection(ConnectionString);
第二步:声明数据库操作对象:
两种途径:
直接以字符串拼接的方式形成sql语句,比如:
sqlstr="insert into usertab(uid,pwd) values('"+uidtxt+"','"+pwdtxt+"')";
SqlCommand command = new SqlCommand(sqlstr, connection);
以参数占位的先行成形式语句,然后对参数实行绑定,比如:
sqlstr="insert into usertab(uid,pwd) values(@uidtxt,@pwdtxt)";
SqlCommand command = new SqlCommand(sqlstr, connection);
command.Parameters.Add("@uidtxt", SqlDbType.Text);
command.Parameters["@uidtxt"].Value =uidtxt;
command.Parameters.Add("@pwdtxt", SqlDbType.Text);
command.Parameters["@pwdtxt"].Value =uidtxt;
执行数据库操作:
command.ExecuteNonQuery();
connection.close();
SQL语句 都是 insert into table1(user ,pwd,sex,age)values (@user ,@pwd,@sex,@age), 在C# 用 for 循环去逐行插入,con 在for 循环之前open,循环结束后关闭con。
四个字段就是4个参数,@user ,@pwd,@sex,@age
给分吧,标准的操作。
添加引用Oracle.DataAccess.dll
using Oracle.DataAccess.Client;
OracleBulkCopy sqlBulk = new OracleBulkCopy("User ID=root;Password=***;Data Source=xx.x.x.x;",
OracleBulkCopyOptions.UseInternalTransaction);
sqlBulk.DestinationTableName = "表名";
foreach(DataColumn column in dtTable.Columns) {
sqlBulk.ColumnMappings.Add(column.ColumnName,column.ColumnName);
}
sqlBulk.WriteToServer(dtTable);
sqlBulk.Dispose();
sqlBulk.Close();
将你查询的语句一条一条的插入到datatable里面,然后批量插入数据库表单中用下面的方法
public void InsertTable(DataTable table1,string tablename) // table1要插入的数据 tablename 数据库表单名称
{
SqlBulkCopy sqlBulkCopy = new SqlBulkCopy("数据库连接字符串", SqlBulkCopyOptions.UseInternalTransaction);
sqlBulkCopy.DestinationTableName = tablename;
if (table1 != null && table1.Rows.Count != 0)
{
sqlBulkCopy.WriteToServer(table1);
}
sqlBulkCopy.Close();
}
可以使用xml当参数之后 在用存储过程接收,例如
DECLARE @idoc int
DECLARE @doc nvarchar(max)
SET @doc ='
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
SELECT
*
FROM OPENXML (@idoc, '/roots/root',2)
WITH (id nvarchar(10),name nvarchar(100))
insert into ....