将Excel数据导入SQL Server数据库--2
2009-05-07 16:51
344 查看
在上一次实验中,尝试了使用连接服务器和即席查询实现将Excel中的数据导入到SQL Server2005的数据库中。
但是俗话说得好,计划赶不上变化,这不,变化来了。
在进一步的尝试中发现,使用即席查询等方式,极有可能出现错误,要么是SQL Server2005中外围配置的即席查询设置没开,要么就是Excel表从外界被打开无法读取数据。
还有一点的是,Excel文件必须和数据库在一台机器上(个人是这样认为的,不知道有没有解决办法),我可以把Excel文件上传到WEB服务器上,然后在删掉,但是不能保证WEB服务器和数据库服务器是一台机器啊,这样就没有办法了。
那么只有换一种思路了,使用程序来实现吧。
其实思路很简单,使用dataset!!!
代码如下:
public void Excel(string path)
{
string conStringExcel = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=YES;\"";
string sql = "select * from [Sheet1$]";
DataSet oleds = new DataSet();
OleDbDataAdapter oleda = new OleDbDataAdapter(sql, conStringExcel);
oleda.Fill(oleds);
SqlConnection conn = new SqlConnection(connstring);
SqlDataAdapter sqlda = new SqlDataAdapter("select * from school where 1=2", conn);
SqlCommandBuilder sqlcb = new SqlCommandBuilder(sqlda);
DataSet sqlds = new DataSet();
sqlda.Fill(sqlds);
for (int i = 0; i < oleds.Tables[0].Rows.Count; i++)
{
sqlds.Tables[0].Rows.Add(sqlds.Tables[0].NewRow());
for (int j = 0; j < oleds.Tables[0].Columns.Count; j++)
{
sqlds.Tables[0].Rows[i][j + 1] = oleds.Tables[0].Rows[i][j];
}
}
sqlda.Update(sqlds, "table");
}
其中,方法的参数为Excel的文件路径。connstring是连接SQL Server数据库的连接字符串。由于我的表是带有自动标识的主键的,所以不添加第一列。
个人感觉这种方式还是比较简单的,当然缺点是不够灵活。
希望园内众神冒出来批评指正。
但是俗话说得好,计划赶不上变化,这不,变化来了。
在进一步的尝试中发现,使用即席查询等方式,极有可能出现错误,要么是SQL Server2005中外围配置的即席查询设置没开,要么就是Excel表从外界被打开无法读取数据。
还有一点的是,Excel文件必须和数据库在一台机器上(个人是这样认为的,不知道有没有解决办法),我可以把Excel文件上传到WEB服务器上,然后在删掉,但是不能保证WEB服务器和数据库服务器是一台机器啊,这样就没有办法了。
那么只有换一种思路了,使用程序来实现吧。
其实思路很简单,使用dataset!!!
代码如下:
public void Excel(string path)
{
string conStringExcel = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=YES;\"";
string sql = "select * from [Sheet1$]";
DataSet oleds = new DataSet();
OleDbDataAdapter oleda = new OleDbDataAdapter(sql, conStringExcel);
oleda.Fill(oleds);
SqlConnection conn = new SqlConnection(connstring);
SqlDataAdapter sqlda = new SqlDataAdapter("select * from school where 1=2", conn);
SqlCommandBuilder sqlcb = new SqlCommandBuilder(sqlda);
DataSet sqlds = new DataSet();
sqlda.Fill(sqlds);
for (int i = 0; i < oleds.Tables[0].Rows.Count; i++)
{
sqlds.Tables[0].Rows.Add(sqlds.Tables[0].NewRow());
for (int j = 0; j < oleds.Tables[0].Columns.Count; j++)
{
sqlds.Tables[0].Rows[i][j + 1] = oleds.Tables[0].Rows[i][j];
}
}
sqlda.Update(sqlds, "table");
}
其中,方法的参数为Excel的文件路径。connstring是连接SQL Server数据库的连接字符串。由于我的表是带有自动标识的主键的,所以不添加第一列。
个人感觉这种方式还是比较简单的,当然缺点是不够灵活。
希望园内众神冒出来批评指正。
相关文章推荐
- 图解如何 将Excel里的数据导入到sql server数据库中
- C#数据库数据导入导出系列之一 ASP.NET Excel导入Sql Server数据库
- MVC3 Excel导入数据到sql Server数据库
- Excel表数据导入Sql Server数据库中
- 如何导入excel数据到SQL server数据库 & 如何导出GridView数据至Excel
- 将excel中的数据导入到SQL Server数据库中
- Excel表数据导入Sql Server数据库中
- 使用sublime 同步编辑从excel导入数据到SQL Server数据库
- Excel中数据导入到SQL Server数据库
- Excel表数据导入Sql Server数据库中
- 20160308 C#代码实现Excel数据导入到SQL Server数据库中
- 怎样从Excel文件将数据导入到SQL Server数据库?
- C#通过反射来动态创建类对象并调用相关泛型函数(Excel数据自动导入到SQL Server数据库)
- 将Excel数据导入到SQL Server数据库中
- vb编程把excel中的数据导入SQL SERVER数据库及导出为excel
- C#实现使用form上传Excel文件,导入Excel数据到SQL SERVER数据库
- 转:Asp.Net将Excel数据导入Sql Server数据库
- Excel表数据导入Sql Server数据库中
- 如何把EXCEL数据导入到SQL SERVER数据库中
- asp.net 将EXCEL表格数据导入到SQL Server数据库