dataset详 c#如何将dataset中的资料批量汇入oracle资料库
c#如何将dataset中的资料批量汇入oracle资料库
c#如何将dataset中的资料批量汇入oracle资料库
public void MultiInsertData(DataSet ds)
{
string connt = "Oracle的连线字串";
string sql = "select id,name,… from tablename";必须与ds中的一致
DataTable dt = ds.Defaults[0];
OracleConnection conn = new OracleConnection(connstr);
OracleCommand cmd = new OracleCommand(sql, conn);
conn.Open();
OracleDataAdapter da = new OracleDataAdapter(sqlcmd);
OracleCommandBuilder cb = new OracleCommandBuilder(sqlda);
da.Update(dt);
conn.Close();
sqlconn.Dispose();
}
用这个批量进行汇入,速度快,而且方便呀
那你直接用Excel汇入oracle资料库咯。
我那时50多个栏位也还是insert语句实现的,那个Excel有200000条资料,就是回圈了一分多钟都insert进去了。
如何将资料批量汇入Oracle资料库?
先确保你要汇入的资料库SID中有和你汇出资料时所用的使用者和密码.如果没有请看 2),
1)进入命令控制台,
输入:
imp username/password@SID file=/pathURL full=y
其中username为使用者名称,password为密码,pathURL汇出资料所在路径,
如:
impr scott/tiger@orcl file=D:data.dmp
需要注意的是,你要汇入的表的表空间所属的使用者和密码必须和你要汇入到的表空间所属的使用者和密码相同,就是你汇出资料时用的哪个使用者,汇入时也用哪个使用者,
2)
如果没有这个使用者,建立使用者命令如下:
以sysdba 进入sqlplus,
create user identified by password;
grant dba to user;
如何将excel资料批量汇入sql资料库
请参阅
将EXCEL资料表汇入到SQL中
:jingyan.baidu./article/358570f66145a6ce4724fcba.

如何将excel的资料汇入到oracle资料库
汇入Excel表格
1.建立表,表的栏位与要汇入档案的名称一致
2.点选 工具---->ODBC汇入器
3.选择Excel file 点选连线
4.选择要汇入的档案,点选确定
5.点选 到Oracle 在所有者中选择到自己之前建立的表格 按下回车键
检视对应的栏位名是否相对应 最后单击汇入
如何将一个txt文件的资料批量汇入到资料库?
编写和执行存贮过程:
CREATE PROCEDURE IMPORTTXT
@DBNAME VARCHAR(100)--资料库名
AS
DECLARE @SQLSTRING NVARCHAR(1000)
Set @SqlString=N'Master..xp_CmdShell ''bcp '+@dbname+'.DBO.TABLENAME in C:CSVFILE.TXT -c -S'+@@servername+' -USA -P'''
execute sp_executesql @SqlString
GO
该过程将C:CSVFILE.TXT 汇入到TABLENAME表中,要求栏位结构相符。TXT文件要求是以制表符为栏位间隔符,换行为记录间隔。可以直接使用EXCEL汇出的“以制表符分隔的文字文件”,或将文字文件转换成该格式。
转载:如何将Excel资料批量汇入SQL资料库
namespace WindowsApplication2{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){测试,将excel中的sheet1汇入到sqlserver中
string connString = server=localhost;uid=sa;pwd=sqlgis;database=master;
System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog();
if (fd.ShowDialog() == DialogResult.OK){TransferData(fd.FileName, sheet1″, connString);}}public void TransferData(string excelFile, string sheetName, string connectionString){DataSet ds = new DataSet();try{获取全部资料
string strConn = Provider=Microsoft.Jet.OLEDB.4.0; + Data Source= + excelFile + ; + Extended Properties=Excel 8.0;;
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = ;
OleDbDataAdapter myCommand = null;
strExcel = string.Format(select * from [{0}$], sheetName);
myCommand = new OleDbDataAdapter(strExcel, strConn);
myCommand.Fill(ds, sheetName);
如果目标表不存在则建立
string strSql = string.Format(if object_id(’{0}’) is null create table {0}(, sheetName);
foreach (System.Data.DataColumn c in ds.Tables[0].Columns){strSql += string.Format([{0}] varchar(255),, c.ColumnName);}strSql = strSql.Trim(’,') + );
using (System.Data.SqlClient.SqlConnection sqlconn = new System.Data.SqlClient.SqlConnection(connectionString)){sqlconn.Open();
System.Data.SqlClient.SqlCommand mand = sqlconn.CreateCommand();
mand.CommandText = strSql;
mand.ExecuteNonQuery();
sqlconn.Close();}用bcp汇入资料
using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(connectionString)){bcp.SqlRowsCopied += new System.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);
bcp.BatchSize = 100;每次传输的行数
bcp.NotifyAfter = 100;进度提示的行数
bcp.DestinationTableName = sheetName;目标表
this.Update();}}}上面的TransferData基本可以直接使用,如果要考虑周全的话,可以用oledb来获取excel的表结构,并且加入ColumnMappings来设定对照栏位,这样效果就完全可以做到和sqlserver的dts相同的效果了。