excel 导入数据库是很常用的一个功能,通过整理记录一下代码。
大概思路,先将excel上传到服务器,然后读取服务器上的excel到dataset中,在将dataset中的数据循环插入到数据库中。
代码如下:
上传部分略过,读取excel数据到dataset中
//把excel数据读入dataset返回l数据集
protected DataSet xsldata(string filepath)
{
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;IMEX=1'";
System.Data.OleDb.OleDbConnection Conn = new System.Data.OleDb.OleDbConnection(strCon);
string strCom = "SELECT * FROM [Sheet1$]";
Conn.Open();
System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, Conn);
DataSet ds = new DataSet();
myCommand.Fill(ds, "[Sheet1$]");
Conn.Close();
return ds;
}
public static int[] XslSqldx(DataSet ds)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
int[] xinx = new int[2];
connection.Open();
int errorcount = 0; /记录插入失败条数
int insertcount = 0; //记录插入成功条数
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string test1= ds.Tables[0].Rows[i][0].ToString();
string test2= ds.Tables[0].Rows[i][1].ToString();
try
{
//拼接sql语句
string inser = "insert into Tb_table values('" + test1+ "','" + test2+ "')";
//插入该记录
SqlCommand insertcmd = new SqlCommand(inser, connection);
insertcmd.ExecuteNonQuery();
insertcount++;
}
catch
{
errorcount++;
}
}
xinx[0] = errorcount;
xinx[1] = insertcount;
return xinx;
}
}
在执行插入数据库操作时,可以对数据进行过滤,适当修改。