c#数据库的导入导出

我想知道c#能实现大量数据的导入导出功能吗?比如数据量有20g或者更多,少量的数据我是存入txt实现的,但大量的数据必然会出现问题。

using System.Data;using System.Data.OleDb; /// <summary> /// 将Excel读取到DataSet /// </summary> /// <param name="path">Excel 路径</param> /// <param name="excelversion">12.0</param> /// <returns></returns> public static DataSet ExcelToDataSet(string path,string excelversion) { try { // 拼写连接字符串,打开连接 string strConn = "Provider=Microsoft.ACE.OLEDB." + excelversion + ";" + "Data Source=" + path + ";Extended Properties='Excel " + excelversion + "; HDR=YES; IMEX=1'"; OleDbConnection objConn = new OleDbConnection(strConn); objConn.Open(); // 取得Excel工作簿中所有工作表 DataTable schemaTable = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); OleDbDataAdapter sqlada = new OleDbDataAdapter(); DataSet ds = new DataSet(); // 遍历工作表取得数据并存入Dataset foreach (DataRow dr in schemaTable.Rows) { string strSql = "Select * From [" + dr[2].ToString().Trim() + "]"; OleDbCommand objCmd = new OleDbCommand(strSql, objConn); sqlada.SelectCommand = objCmd; sqlada.Fill(ds, dr[2].ToString().Trim()); } objConn.Close(); return ds; } catch { return null; } }
以上回答你满意么?追问

几十g的数据存入excel现实吗?这样的写入不会道是程序卡死吗?或者这么大量的数据写入需要好长时间吧?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-29
SqlBulkCopy 类
http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlbulkcopy(v=vs.80).aspx本回答被网友采纳
第2个回答  2014-08-29
20G? 你存的什么?!
不是有数据库么。追问

是有数据库 就是要实现数据库的导入导出呀,比如数据库的数据太多了,可以导出最早的三个月的,然后删除这三个月的,等我想看的时候还可以把这三个月的数据导入数据库

第3个回答  2014-08-29
循环分批分多个文件可以实现追问

这个是可以实现~但要是这么实现会被老板骂死吧~

追答

至少你能先实现先啊,没准动手实现的过程中你就有什么好思路或好点子呢,你的实际情况你自己清楚

第4个回答  2014-08-29
大量的话就使用NIOP,百度下就有了,例子很多的追问

niop不是一个比赛吗?百度搜的

追答

打错了,抱歉,那天网有问题,一直忘了回复了。使用npoi 导入导出,有很多例子,直接搜npoi也行。如果只是需要导出其中某些数据,可以在sql查询的时候就做出筛选

本回答被提问者采纳
相似回答