1)接受数据导入的表已经存在。
insert into t1 select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,
'Excel 5.0HDR=YESDATABASE=c:\\test.xls',sheet1$)
2)导入数据并生成表。
select * into t1 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0',
'Excel 5.0HDR=YESDATABASE=c:\\test.xls',sheet1$)
3) 导入Excel中指定的列到数据库表中指定的列。
INSERT INTO t1(a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET'MICROSOFT.JET.OLEDB.4.0' ,'Excel5.0HDR=YESDATABASE=c:\\test.xls',sheet1$)
需要注意的地方。
1)外围应用配置器的设置。
从“功能外围应用配置器”中选择“启动 OPENROWSET 和 OPENDATASOURCE 支持”选项。
2)关闭Excel表。
如果在导入时要导入的Excel表格处于打开状态,会提示:
“无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "microsoft.jet.oledb.4.0" 的数据源对象。”
3)导入数据时,Excel的首行会作为表头,若导入到已存在的数据库表,则忽略首行。
你是说给每个表写个映射类很累人?
那就用语句查出之后DataTable之后直接转json
/// <summary>/// 将datatable转换为json
/// </summary>
/// <param name="dt">Dt</param>
/// <returns>JSON字符串</returns>
public static string DataTableToJson(DataTable dt)
{
JavaScriptSerializer js = new JavaScriptSerializer()
System.Collections.ArrayList list = new System.Collections.ArrayList()
foreach (DataRow dr in dt.Rows)
{
System.Collections.Generic.Dictionary<string, object> drow = new System.Collections.Generic.Dictionary<string, object>()
foreach (DataColumn dc in dt.Columns)
{
drow.Add(dc.ColumnName, dr[dc.ColumnName])
}
list.Add(drow)
}
//序列化
return js.Serialize(list)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)