关于insertallinto的信息
如何用sql语句从excel导入sql中
我做过这个功能,分3步。
第一步,校验Excel的数据是否符合条件,比如不能为空,数据类型不能冲突等等。
第二步,在数据库里创建临时表,表结构跟excel一模一样。把数据从excel照搬到临时表中。
第三步,根据过滤条件,把符合的数据从临时表中insert到对象表中。
//新文件名称
string newfile = name + lastName; //假定excel文件名 最终数据.excel
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("../../File/") + newfile + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
insertTempTable(strConn); //存入临时表 包含第一步和第二步
insertAllTable(); //第三步
/// summary
/// 把数据从xls导入临时创建表
/// /summary
/// param name="conn"/param
public void insertTempTable(string conn)
{
string strConn = conn;
//这里假设excel字段名称为 字段(序号,零件编号,零件名称,数量,价格)
//excel表名称为Matrixkey
string query = "SELECT [序号],[零件编号],[零件名称],[数量],[价格] FROM [Matrixkey$] Where [零件编号] '' ";
OleDbCommand oleCommand = new OleDbCommand(query, new OleDbConnection(strConn));
OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleCommand);
DataSet PartsDataSet = new DataSet();
oleAdapter.Fill(PartsDataSet, "[Matrixkey$]");
DBAccess dba = DBAccessFactory.CreateAccess(); //这是我的数据库操作类
//存储过程 createtmptable 用来创建临时表 结构跟excel一模一样
dba.ExecuteProcedure("createtmptable");
foreach (DataRow row in PartsDataSet.Tables[0].Rows)
{
if (row["价格"].ToString() == "")
{row["价格"] = "0.00";}
dba.ExecuteInsertSQL(row, "tmpparts"); //执行第2步 创建的临时表叫tmpparts
}
}
/// summary
/// 执行最终的插入存储过程
/// /summary
public void insertAllTable()
{
DBAccess dba = DBAccessFactory.CreateAccess();
//存储过程BuildRelation用来实现第3步 这个就简单了 我写个例子你看看
dba.ExecuteProcedure("BuildRelation");
}
存储过程:BuildRelation
insert into 对象表 --假设对象表字段为 ID No Code Name Quantity Price 其中ID自增
select * from tmpparts
where 零件编号 not in (select Code from tmpparts)
学会了哇?
一条oracle 语句怎么,插入多值
1、你用insert
into只能插入一条记录。
2、如果你插入的东西是其他表中已经存在的,那个是可以的。
3、你用plsql的过程应该有办法一次insert多个值。
oracle中是否可以同时向多个表中插入数据
请描述需求准确些哥们
-----可以一条insert插入多个表,使用insert
all或者insert
first,但是这种插入,有限制,就是插入的values必须从select出的data中获取,比如,insert
all
into
stu
values(id,name)
into
class(id)
values(id)
select
id,name
from
stu;这个select关键字在insert
all和insert
first中必须存在,具体使用方法可以查oracle手册或者直接百度。