导入excel把数据存在datatable中,用sqlbulkcopy把datable批量导入到数据库的表中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了导入excel把数据存在datatable中,用sqlbulkcopy把datable批量导入到数据库的表中相关的知识,希望对你有一定的参考价值。

excel中是两列数据,数据表中是5个字段,用sqlbulkcopy插入那两列数据时,剩下的三个字段插入默认值,默认值是自己定的,(excel中数据用sqlbulkcopy导入数据表里代码我已经实现了,就是别默认值怎么用sqlbulkcopy一块插入数据库中啊)怎么写代码啊,急啊,帮帮忙啦

winform还是net?如果是winfrom参考下面的代码吧!

public void ExcelIntoDatagridView()

//打开一个文件选择框
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "Excel文件";
ofd.FileName = "";
ofd.Filter = "Excel文件(*.xls)|";
try

if (ofd.ShowDialog() == DialogResult.OK)

string tableName = "";
//if (arratlist != null)
//
// arratlist.Clear();
//
string Path = ofd.FileName;
string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + Path + ";Extended Properties=\'Excel 12.0; HDR=Yes; IMEX=1\'";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
tableName = schemaTable.Rows[0][2].ToString().Trim();
//for (int i = 0; i < schemaTable.Rows.Count; i++)
//
// arratlist.Add(schemaTable.Rows[i][2].ToString().TrimStart(\'/\'\').Trim(\'/\'\', \'$\'));//
//
string strExcel = "Select * From [" + tableName + "]";
OleDbCommand cmd = new OleDbCommand(strExcel, conn);
DataTable excelDt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(strExcel, conn);
da.Fill(excelDt);
conn.Close();
MessageBox.Show("excel 导入成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
if (excelDt != null)

dataGridView1.DataSource = excelDt;



catch (Exception ex)

MessageBox.Show("导入文件时出错,文件可能正被打开", "提示");

追问

你这只是导入excel的代码,导入和批量插入数据库我都写出来了,只是不会往数据库插入时再附上默认值插入数据库

追答

插入的时候,默认给某个字段默认值这还不简单?

追问

关键是用的sqlbulkcopy,导入的excel数据已经生成datatable,bcp.ColumnMappings.Add(0, "Enterprise");bcp.ColumnMappings.Add(1, "CallName");这是往数据库中插入的两个字段,表中还有别的字段给他默认值,就是在bcp.ColumnMappings.Add("默认值","name")一块插入时给附上默认值

参考技术A 写什么代码啊,用sql2005导入数据向导就行了追问

我要的是导入excel中的数据到数据库,难道客户会导入数据向导吗,更别说操作服务器了

追答

那写个sql插入语句很容易吧 你现在有2个字段的表,你再写个insert到5个字段的表不就行了? 2个字段的就算临时表呗

另外sql2005好像支持字段有默认值的 你试试看在数据库直接指定默认值

追问

哥我要的是代码,我知道sql2005支持默认值,不仅2005,只要是sql 都支持的

excel数据导入到android项目下的sqlite数据库中

现有1个excel表格,里面数据量挺大,想把这几个表格导入到我创建的android项目下MOI.db数据库中的Usermsg表格中,该怎么导入呢,在线等。跪求大神帮忙啊
怎么没人回答哦,哎,今天整这个问题整了一天了,但始终没整明白,还望各位牛人 给指导指导哈。

参考技术A 把 excel 放到sd中, 利用第三方jxl.jar 对excel进行解析,然后把解析的数据存入sqlite中 参考技术B

    把excel的数据读入到程序里。 这个就是用java读取excel的数据,百度一下就有很多成熟的例子。

    把程序的数据存入sqllite里面。 

追问

现在我已经实现了用java读取excel数据,excel文件的内容已经显示在控制台上了,那接下来 我应该怎么把那些数据导入到 我android项目中的sqlite数据库中呢,还望高手指教。

追答

剩下的内容就是用java操作数据库了呀。
http://blog.csdn.net/liuhe688/article/details/6715983
你也可以自己百度一下, 很多例子咯

追问

可是 我现在创建的是android项目啊,哎,搞不懂 怎么让java项目中的数据 存入android项目中的数据库中,其实我就是想 有没有 android代码, 实现 excel表格内容存入到sqlite数据库中。用sqlite3.exe命令把excel装换为csv格式,是成功,但数据库没有存放到我项目里,adb shell也试过,提示打不开文件。

追答

android项目不也是java代码吗? 你看了上面那个链接了吗? 那个不就是android做操sqllite的例子吗?

参考技术C 把fatal exception后面的log贴出来……红色的才是错误信息。
1.
可能是你的build
path有问题
2.
有可能是你使用的sdk
版本比较低,换到高版本试试。
最好是把整个工程传上来看看。

以上是关于导入excel把数据存在datatable中,用sqlbulkcopy把datable批量导入到数据库的表中的主要内容,如果未能解决你的问题,请参考以下文章

Python 操作Redis

python爬虫入门----- 阿里巴巴供应商爬虫

Python词典设置默认值小技巧

《python学习手册(第4版)》pdf

Django settings.py 的media路径设置

Python中的赋值,浅拷贝和深拷贝的区别