安全高效是什么意思?安全是不是指怕导入后和excel中的数据不一样?那这点我觉得应该把重点放到excel上,excel多注意注意单元格的格式等等。
高效是不是导入的速度问题?大致的步骤应该是excel一个源导到dataset中,再导到sql中。循环dataset,别要循环sql语句。我这偶个简单一条sql语句的导入sql数据库。你参考一下。
public void GetSqlInput(DataSet ds)//ds外面传过来是excel中的数据,至于怎么传过来的不写了
{
OleDbConnection connection = new OleDbConnection(dbConnStr);
OleDbCommand _cmd = new OleDbCommand("select * from schools", connection);
OleDbDataAdapter osda = new OleDbDataAdapter(_cmd);
DataTable dt = new DataTable();
osda.Fill(dt);
for (int i = 0; i <= ds.Tables[0].Rows.Count; i++)//这里的i 和 count 可以控制从哪行开始和结束
{
dt.Rows.Add(new object[] { ds.Tables[0].Rows[i][0], ds.Tables[0].Rows[i][1], ds.Tables[0].Rows[i][2] });//我只要excel中的ABC列。
}
OleDbCommandBuilder scb = new OleDbCommandBuilder(osda);
osda.Update(dt);
}
自己写代码比较一下吧,里面不止牵扯到效率,还要看你具体的转换方式。
方法同2楼