1. public string MyConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ErLake.mdb";
  2. /// <summary>
  3. /// 获取Excel文件
  4. /// </summary>
  5. /// <param name="sender"></param>
  6. /// <param name="e"></param>
  7.  
  8. private void button1_Click(object sender, EventArgs e)
  9. {
  10.  
  11. OpenFileDialog dlg = new OpenFileDialog();
  12. dlg.Filter = "Excel文件(*.xls)|*.xls";
  13. if (dlg.ShowDialog() == DialogResult.OK)
  14. {
  15. string filePath = dlg.FileName;
  16. this.textBox1.Text = filePath;
  17. }
  18.  
  19. }
  20.  
  21. private void button2_Click(object sender, EventArgs e)
  22. {
  23. if (textBox1.Text.Length == )
  24. {
  25. MessageBox.Show("请选择导入数据的Execl文件");
  26. }
  27. else
  28. {
  29. try
  30. {
  31. OleDbConnectionStringBuilder connectStringBuilder = new OleDbConnectionStringBuilder();
  32. connectStringBuilder.DataSource = this.textBox1.Text.Trim();
  33. connectStringBuilder.Provider = "Microsoft.Jet.OLEDB.4.0";
  34. connectStringBuilder.Add("Extended Properties", "Excel 8.0");
  35. using (OleDbConnection cn = new OleDbConnection(connectStringBuilder.ConnectionString))
  36. {
  37. DataSet ds = new DataSet();
  38. string sql = "Select * from [Sheet1$]";
  39. OleDbCommand cmdLiming = new OleDbCommand(sql, cn);
  40. cn.Open();
  41. using (OleDbDataReader drLiming = cmdLiming.ExecuteReader())
  42. {
  43. ds.Load(drLiming, LoadOption.OverwriteChanges, new string[] { "Sheet1" });
  44. DataTable dt = ds.Tables["Sheet1"];
  45. if (dt.Rows.Count > )
  46. {
  47. for (int i = ; i < dt.Rows.Count; i++)
  48. {
  49. //写入数据库数据
  50. // string MySql = "insert into 洱海各月出流流量 values('" + dt.Rows[i]["年"].ToString() + "','" + dt.Rows[i]["一月"].ToString()+ "','0','" + dt.Rows[i]["备注"].ToString() + "','0','" + i.ToString() + "')";
  51. string MySql = "insert into 洱海各月出流流量 values('" + dt.Rows[i]["年"].ToString() + "','" +
  52. dt.Rows[i]["一月"].ToString() + "','" +
  53. dt.Rows[i]["二月"].ToString() + "','" +
  54. dt.Rows[i]["三月"].ToString() + "','" +
  55. dt.Rows[i]["四月"].ToString() + "','" +
  56. dt.Rows[i]["五月"].ToString() + "','" +
  57. dt.Rows[i]["六月"].ToString() + "','" +
  58. dt.Rows[i]["七月"].ToString() + "','" +
  59. dt.Rows[i]["八月"].ToString() + "','" +
  60. dt.Rows[i]["九月"].ToString() + "','" +
  61. dt.Rows[i]["十月"].ToString() + "','" +
  62. dt.Rows[i]["十一月"].ToString() + "','" +
  63. dt.Rows[i]["十二月"].ToString() + "','" +
  64. dt.Rows[i]["全年平均"].ToString() + "')";
  65. SQLExecute(MySql);
  66. }
  67. MessageBox.Show("数据导入成功!");
  68. }
  69. else
  70. {
  71. MessageBox.Show("请检查你的Excel中是否存在数据");
  72. }
  73. }
  74. }
  75. }
  76. catch (Exception ex)
  77. {
  78. MessageBox.Show(ex.ToString());
  79. }
  80.  
  81. }
  82. }
  83.  
  84. /// <summary>
  85. /// 数据操作通用类
  86. /// </summary>
  87. /// <param name="sql"></param>
  88. /// <returns></returns>
  89. public bool SQLExecute(string sql)
  90. {
  91. try
  92. {
  93. OleDbConnection conn = new OleDbConnection(MyConnectionString);
  94. conn.Open();
  95. OleDbCommand comm = new OleDbCommand();
  96. comm.Connection = conn;
  97. comm.CommandText = sql;
  98. comm.ExecuteNonQuery();
  99. comm.Connection.Close();
  100. conn.Close();
  101. return true;
  102. }
  103. catch
  104. {
  105. return false;
  106.  
  107. }
  108. }
  109. }

上面这段代码可以向ACCESS数据库表中导入EXCEL表,但是有个问题:导入数据后,查询数据表的数据发现新导入的数据出现在查询结果的前面,这不是我想要的,怎么办呢,我就采用字段升序排序的方式解决该问题!结果证明是有效的!

  1. string MySQL = "Select * from 洱海各月出流流量 order by 年 asc";

C# winform 编程 向ACCESS数据库导入EXCEL表使用心得的更多相关文章

  1. 向MySql数据库导入excel表数据

    最近要开发一个小的答题系统,如果题目人工录入那确实很麻烦.所以想到是不是可以从用一些现有数据格式的文件导入数据.在网上查了一下,看到有关于将excel的数据导入到mysql的方法.所以将题库数据整理成 ...

  2. winfrom 导入Excel表到access数据库(来自小抽奖系统)

    网上有很多这种方法,本人只是针对自己的系统来实现的 //导入excel表 private void ImportTSMenu_Click(object sender, EventArgs e) { O ...

  3. 向ACCESS数据库中的表导入EXCEL表,在 System.Data.OleDb.OleDbException 中第一次偶然出现的“System.Data.dll”类型的异常

    向ACCESS数据库中的表导入EXCEL表,EXCEL表Sheet1中与ACCESS数据库表中的关键字对应的列的值,不能与数据库中表的主键项值重复,不然就会出现 在 System.Data.OleDb ...

  4. 使用phpExcel向mysql数据库导入excel

    使用phpExcel向mysql数据库导入excel from:http://blog.163.com/dustye_l/blog/static/172439513201242491016834/ 使 ...

  5. Access数据库导入到mysql数据库中

    做项目时需要查询手机号归属地的,用网上提供的接口,耗时太长,反应慢,只能自己在网上搜了一个包含所有手机号归属地的Access数据库,导入到自己的mysql数据库中 Access数据库导入到mysql中 ...

  6. c#创建access数据库和数据表

      由于在程序中使用了ADOX,所以先要在解决方案中引用之,方法如下: 解决方案资源管理器(项目名称)-->(右键)添加引用-->COM--> Microsoft ADO Ext. ...

  7. 用SQL语句创建和删除Access数据库中的表;添加列和删除列

    用SQL语句创建和删除Access数据库中的表;添加列和删除列 Posted on 2009-08-11 13:42 yunbo 阅读(1240) 评论(0) 编辑 收藏 用SQL语句创建和删除Acc ...

  8. sql server 创建视图添加表时出现从其他数据库导入的表未显示出来

    创建视图添加表时出现从其他数据库导入的表未显示出来,通过数据库刷新,也不能解决.关闭SQL server management studio 后,再次进入,在创建视图的时候添加表的列表就出现了新导入的 ...

  9. MySQL学习记录(导入Excel表到数据库,并筛选条件输出)

    附上:重置mysql账号密码方法 ubuntu系统下mysql重置密码和修改密码操作 - skh2015java的博客 - CSDN博客(改完重启,登录mysql要root/sudo权限) Cento ...

随机推荐

  1. List<T>随机返回一个

    /// <summary> /// 随机返回一条数据 /// </summary> /// <param name="list"></pa ...

  2. c++ 查找容器中符合条件的元素,并返回iterator(find_if)

    #include <iostream> // std::cout #include <algorithm> // std::find_if #include <vecto ...

  3. vscode python3 配置生成任务

    一直用sublime,但是ubuntu下输入中文有问题,解决起来太麻烦: pycharm太重.虚拟机一开+Chrome打开10几个页面,然后再运行pycharm,静音轻薄笔记本CPU和8G内存基本都占 ...

  4. MySQL函数GROUP_CONCAT() 实现多条数据合并

    group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来,group by指定的列进行分组. 例如: -- 根据物流订单id查询所有物流订单,车源订单,车辆信息(多条数据合并为一条 ...

  5. telnet 命令使用方法详解,telnet命令怎么用?

    什么是Telnet? 对于Telnet的认识,不同的人持有不同的观点,可以把Telnet当成一种通信协议,但是对于入侵者而言,Telnet只是一种远程登录的工具.一旦入侵者与远程主机建立了Telnet ...

  6. Linux 设置程序开机自启动 (命令systemctl 和 chkconfig用法区别比较)

    之前在Linux centos 7 上安装了apache 和mysql,当时并没有设置开机自动启动. 最近又重新练习网页,每次开机总是要手动启动httpd和mysqld,不方便,就想设置成开机自动启动 ...

  7. 如何配置Smarty模板

    <?php //首先包含Smarty类文件 include_once('Smarty/Smarty.class.php'); //实例化Smarty类文件 $smarty=new Smarty( ...

  8. tryparse

    [C#笔札]Tryparse的用法   这是参考读物的上得一个例子.自己仿照做的作业 private void button1_Click(object sender, EventArgs e) { ...

  9. English trip -- Phonics 5 元音字母 o

    Vowel 元音 元音 O Consonant 辅音 清辅音   h    wh 浊辅音  m    wh  n   ng   y oa:[əʊ]  # 字母本身音 coat boat load co ...

  10. Queue CodeForces - 353D (思维dp)

    https://codeforces.com/problemset/problem/353/D 大意:给定字符串, 每一秒, 若F在M的右侧, 则交换M与F, 求多少秒后F全在M左侧 $dp[i]$为 ...