一次插入多条记录?这个好像不行吧,因为标准SQL中,insert语句一次只能插入一条记录。如果用的是mysql,可以一次插入多条记录,像这样:
INSERT INTO users(name, age) VALUES('姚明', 25), ('比尔盖茨', 50), ('火星人', 600);
但是SQL语句写成这种格式就只能在mysql中用。可以将多个实体对象保存到集合中传递给业务层,在业务方法中设置循环,多次循环分别进行插入 *** 作。
如果数据量不大的话可以使用导出到excel功能,然后在目标库中在通过excel导入数据,如果数据量大的就要使用数据库自身的导出功能了,到处以后会生成一个特定的文件,你可以在目标库中导入这个文件。
c#如何将dataset中的数据批量导入oracle数据库
public void MultiInsertData(DataSet ds)
{
string connt = "Oracle的连接字符串";
string sql = "select id,name,… from tablename";必须与ds中的一致
DataTable dt = dsDefaults[0];
OracleConnection conn = new OracleConnection(connstr);
OracleCommand cmd = new OracleCommand(sql, conn);
connOpen();
OracleDataAdapter da = new OracleDataAdapter(sqlcmd);
OracleCommandBuilder cb = new OracleCommandBuilder(sqlda);
daUpdate(dt);
connClose();
sqlconnDispose();
}
用这个批量进行导入,速度快,而且方便呀
那你直接用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:\datadmp
需要注意的是,你要导入的表的表空间所属的用户和密码必须和你要导入到的表空间所属的用户和密码相同,就是你导出数据时用的哪个用户,导入时也用哪个用户,
2)
如果没有这个用户,创建用户命令如下:
以sysdba 进入sqlplus,
create user identified by password;
grant dba to user;
如何将excel数据批量导入sql数据库
请参阅
将EXCEL数据表导入到SQL中
:jingyanbaidu/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'Masterxp_CmdShell ''bcp '+@dbname+'DBOTABLENAME in C:\CSVFILETXT -c -S'+@@servername+' -USA -P'''
execute sp_executesql @SqlString
GO
该过程将C:\CSVFILETXT 导入到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;
SystemWindowsFormsOpenFileDialog fd = new OpenFileDialog();
if (fdShowDialog() == DialogResultOK){TransferData(fdFileName, sheet1″, connString);}}public void TransferData(string excelFile, string sheetName, string connectionString){DataSet ds = new DataSet();try{获取全部数据
string strConn = Provider=MicrosoftJetOLEDB40; + Data Source= + excelFile + ; + Extended Properties=Excel 80;;
OleDbConnection conn = new OleDbConnection(strConn);
connOpen();
string strExcel = ;
OleDbDataAdapter myCommand = null;
strExcel = stringFormat(select from [{0}$], sheetName);
myCommand = new OleDbDataAdapter(strExcel, strConn);
myCommandFill(ds, sheetName);
如果目标表不存在则创建
string strSql = stringFormat(if object_id(’{0}’) is null create table {0}(, sheetName);
foreach (SystemDataDataColumn c in dsTables[0]Columns){strSql += stringFormat([{0}] varchar(255),, cColumnName);}strSql = strSqlTrim(’,') + );
using (SystemDataSqlClientSqlConnection sqlconn = new SystemDataSqlClientSqlConnection(connectionString)){sqlconnOpen();
SystemDataSqlClientSqlCommand mand = sqlconnCreateCommand();
mandCommandText = strSql;
mandExecuteNonQuery();
sqlconnClose();}用bcp导入数据
using (SystemDataSqlClientSqlBulkCopy bcp = new SystemDataSqlClientSqlBulkCopy(connectionString)){bcpSqlRowsCopied += new SystemDataSqlClientSqlRowsCopiedEventHandler(bcp_SqlRowsCopied);
bcpBatchSize = 100;每次传输的行数
bcpNotifyAfter = 100;进度提示的行数
bcpDestinationTableName = sheetName;目标表
thisUpdate();}}}上面的TransferData基本可以直接使用,如果要考虑周全的话,可以用oledb来获取excel的表结构,并且加入ColumnMappings来设置对照字段,这样效果就完全可以做到和sqlserver的dts相同的效果了。
传统拼接insert into table() values(),(),()这种方式实现批量插入
采用数据库持久化框架,比如hibernate,根据插入的记录数,设定每多少次循环执行一次commit *** 作
以上就是关于请问jsp如何批量插入数据到数据库中全部的内容,包括:请问jsp如何批量插入数据到数据库中、如何批量将一个数据库数据批量导出, 然后批量导入另一数据库、c#如何将dataset中的数据批量导入oracle数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)