美文网首页Excel催化剂开源系列
Excel催化剂开源第17波-VSTO开发之ADO.Net访问S

Excel催化剂开源第17波-VSTO开发之ADO.Net访问S

作者: 1d0e4a6e400e | 来源:发表于2019-01-12 09:17 被阅读42次

    在Excel催化剂中,独树一帜地推出了Excel与数据库交互功能,目前仅实现了对Sqlserver的交互,在通用型插件中仅此一家,别无其他。

    为何会出现这样的局面呢,原因大概有以下几大方面:

    1. 和数据库交互的使用群体太窄,除非极个别数据分析师会用到
      这个问题的确存在,在Excel群体中,能够有机会接触到数据库层面的聊聊无几,当属于最上层高级Excel用户才会涉猎,对Excel催化剂来说,本来群体已定位为重度Excel高级用户使用,有此功能才显得插件的饱满性。

    2. 开发者本身不懂数据库,更无从开发数据库相关的功能
      这个原因也很普遍,看市面上的书籍,除非专业大部头的Excel书,才会简单介绍下数据库的方面的知识,大众书籍里少有提及,但开发插件的书籍倒有许多,所以造成了很大部分的Excel开发群体是不懂数据库的。
      对Excel催化剂来说,既然是提供催化剂般震撼性效果,没有数据库,也谈不成如何地震撼,毕竟少数据量情形下,手工做和插件实现,也就是几个小时和1分钟的区别,Excel催化剂想要的极致效果是不可能实现和1分钟的事情。

    3. 和数据库交互的功能都躲藏在各大商业定制化插件领域
      许多的商业系统,因其数据交互的需要,很多时候会开发一些Excel插件来辅助系统一起运作,当然更多地是对系统数据查询层面,在数据上传、执行SQL语句等方面,肯定不会开放这样的功能的。
      Excel催化剂非一般性的小白收割机,也非一般性的IT财团卖钱包装机,所以很另类地提供了数据库交互功能,在免费的方式下即可使用,造福了大片的群体。

    言归正传,Excel催化剂与Sqlserver交互靠的是什么?

    在传统VBA开发中,只能用ADO这样的方式和数据库交互,当然代码不嫌麻烦的话,勉强还可以用着。

    在VSTO的环境下,完全已经没有理由再用ADO这样的方式访问数据库了,虽然还保留这样的能力,而应该用上ADO.Net的方式,对ADO进行了很大的升级。

    前面篇幅里提及的DataTable就是ADO.Net的其中一部分,大家可能已经可以略略地感之到它的便利性。

    在.Net的世界里,区别于传统VBA开发的思维是,想要实现某个功能的首要任务不是立马撸起手袖干起来,而是习惯性地去百度、谷歌一翻,看看有没现成的轮子可用,特别是通用性的大部分程序员都会用到的功能,千万别一开始自己去撸代码,除非对自己代码能力特别有信心,同时抱负着拯救千万低级码农于一身的使命才合适去做这样的事情。

    不扯远,如何用懒癌的方式实现Excel与Sqlserver交互?答案是找个SqlHelper代码段即可。

    以下是笔者初学VSTO时,在百度上找到的热心码农写好的代码,一直沿用至今,直接上代码

    抱歉,代码太长,无法发布,可私信发送。

    以上可以放到自己的项目里,或者和其他工具类一起打包一下,打包好可以放到Nuget里,供自己用或别人用都可以。

    再次说明下,笔者只是个数据分析师,专业方向是BI,不要指望笔者的代码能力有多强。仅仅给大家做了百度搬运工,仅作一些指路人角色。

    Nuget发布自己的dll

    有了以上的现成轮子使用,核心代码变得异常简单

     using (SqlConnection sqlConnection = new SqlConnection(msSqlCnnString))
                        {
                            sqlConnection.Open();
                            SqlTransaction sqlTransaction = sqlConnection.BeginTransaction();
                            try
                            {
                                SqlHelper.ExecuteNonQuery(sqlTransaction, CommandType.Text, this.richTextBox1.Text);
                                sqlTransaction.Commit();
                                AddCnnInfo(serverName, dbName, userName, pwd);
                                MessageBox.Show("执行完成!");
                                this.Close();
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show("SQL语句执行出错,出错原因为\n" + ex.Message);
                                sqlTransaction.Rollback();
                            }
    
                        };
    

    结语

    此篇正式带领进入VSTO开发的轮子时代,想要实现什么功能,多多百度、Google,拿其他人已经做好的开源代码,在专业程序猿世界里,大把大把的热心人士为我们精心准备好了一切的底层,包括VSTO也是微软给我们准备的底层,希望Excel催化剂所分享的这一系列文章,也能成为各大VBA转VSTO开发者们的底层,可以拿来即用,再次地聚焦在自己的功能实现上。

    技术交流QQ群

    QQ群名:Excel催化剂开源讨论群, QQ群号:788145319


    Excel催化剂开源讨论群二维码

    关于Excel催化剂

    Excel催化剂先是一微信公众号的名称,后来顺其名称,正式推出了Excel插件,插件将持续性地更新,更新的周期视本人的时间而定争取一周能够上线一个大功能模块。Excel催化剂插件承诺个人用户永久性免费使用!

    Excel催化剂插件使用最新的布署技术,实现一次安装,日后所有更新自动更新完成,无需重复关注更新动态,手动下载安装包重新安装,只需一次安装即可随时保持最新版本!

    Excel催化剂插件下载链接:https://pan.baidu.com/s/1Iz2_NZJ8v7C9eqhNjdnP3Q

    联系作者 公众号

    取名催化剂,因Excel本身的强大,并非所有人能够立马享受到,大部分人还是在被Excel软件所虐的阶段,就是头脑里很清晰想达到的效果,而且高手们也已经实现出来,就是自己怎么弄都弄不出来,或者更糟的是还不知道Excel能够做什么而停留在不断地重复、机械、手工地在做着数据,耗费着无数的青春年华岁月。所以催生了是否可以作为一种媒介,让广大的Excel用户们可以瞬间点燃Excel的爆点,无需苦苦地挣扎地没日没夜的技巧学习、高级复杂函数的烧脑,最终走向了从入门到放弃的道路。

    最后Excel功能强大,其实还需树立一个观点,不是所有事情都要交给Excel去完成,也不是所有事情Excel都是十分胜任的,外面的世界仍然是一个广阔的世界,Excel只是其中一枚耀眼的明星,还有其他更多同样精彩强大的技术、工具等。*Excel催化剂也将借力这些其他技术,让Excel能够发挥更强大的爆发!

    关于Excel催化剂作者

    姓名:李伟坚,从事数据分析工作多年(BI方向),一名同样在路上的学习者。
    服务过行业:零售特别是鞋服类的零售行业,电商(淘宝、天猫、京东、唯品会)

    技术路线从一名普通用户,通过Excel软件的学习,从此走向数据世界,非科班IT专业人士。
    历经重重难关,终于在数据的道路上达到技术平原期,学习众多的知识不再太吃力,同时也形成了自己的一套数据解决方案(数据采集、数据加工清洗、数据多维建模、数据报表展示等)。

    擅长技术领域:Excel等Office家族软件、VBA&VSTO的二次开发、Sqlserver数据库技术、Sqlserver的商业智能BI技术、Powerbi技术、云服务器布署技术等等。

    2018年开始职业生涯作了重大调整,从原来的正职工作,转为自由职业者,暂无固定收入,暂对前面道路不太明朗,苦重新回到正职工作,对Excel催化剂的运营和开发必定受到很大的影响(正职工作时间内不可能维护也不可能随便把工作时间内的成果公布于外,工作外的时间也十分有限,因已而立之年,家庭责任重大)。

    和广大拥护者一同期盼:Excel催化剂一直能运行下去,我所惠及的群体们能够给予支持(多留言鼓励下、转发下朋友圈推荐、小额打赏下和最重点的可以和所在公司及同行推荐推荐,让我的技术可以在贵司发挥价值,实现双赢(初步设想可以数据顾问的方式或一些小型项目开发的方式合作)。

    技术交流QQ群

    QQ群名:Excel催化剂开源讨论群, QQ群号:788145319


    Excel催化剂开源讨论群二维码

    关于Excel催化剂

    Excel催化剂先是一微信公众号的名称,后来顺其名称,正式推出了Excel插件,插件将持续性地更新,更新的周期视本人的时间而定争取一周能够上线一个大功能模块。Excel催化剂插件承诺个人用户永久性免费使用!

    Excel催化剂插件使用最新的布署技术,实现一次安装,日后所有更新自动更新完成,无需重复关注更新动态,手动下载安装包重新安装,只需一次安装即可随时保持最新版本!

    Excel催化剂插件下载链接:https://pan.baidu.com/s/1Iz2_NZJ8v7C9eqhNjdnP3Q

    联系作者 公众号

    取名催化剂,因Excel本身的强大,并非所有人能够立马享受到,大部分人还是在被Excel软件所虐的阶段,就是头脑里很清晰想达到的效果,而且高手们也已经实现出来,就是自己怎么弄都弄不出来,或者更糟的是还不知道Excel能够做什么而停留在不断地重复、机械、手工地在做着数据,耗费着无数的青春年华岁月。所以催生了是否可以作为一种媒介,让广大的Excel用户们可以瞬间点燃Excel的爆点,无需苦苦地挣扎地没日没夜的技巧学习、高级复杂函数的烧脑,最终走向了从入门到放弃的道路。

    最后Excel功能强大,其实还需树立一个观点,不是所有事情都要交给Excel去完成,也不是所有事情Excel都是十分胜任的,外面的世界仍然是一个广阔的世界,Excel只是其中一枚耀眼的明星,还有其他更多同样精彩强大的技术、工具等。*Excel催化剂也将借力这些其他技术,让Excel能够发挥更强大的爆发!

    关于Excel催化剂作者

    姓名:李伟坚,从事数据分析工作多年(BI方向),一名同样在路上的学习者。
    服务过行业:零售特别是鞋服类的零售行业,电商(淘宝、天猫、京东、唯品会)

    技术路线从一名普通用户,通过Excel软件的学习,从此走向数据世界,非科班IT专业人士。
    历经重重难关,终于在数据的道路上达到技术平原期,学习众多的知识不再太吃力,同时也形成了自己的一套数据解决方案(数据采集、数据加工清洗、数据多维建模、数据报表展示等)。

    擅长技术领域:Excel等Office家族软件、VBA&VSTO的二次开发、Sqlserver数据库技术、Sqlserver的商业智能BI技术、Powerbi技术、云服务器布署技术等等。

    2018年开始职业生涯作了重大调整,从原来的正职工作,转为自由职业者,暂无固定收入,暂对前面道路不太明朗,苦重新回到正职工作,对Excel催化剂的运营和开发必定受到很大的影响(正职工作时间内不可能维护也不可能随便把工作时间内的成果公布于外,工作外的时间也十分有限,因已而立之年,家庭责任重大)。

    和广大拥护者一同期盼:Excel催化剂一直能运行下去,我所惠及的群体们能够给予支持(多留言鼓励下、转发下朋友圈推荐、小额打赏下和最重点的可以和所在公司及同行推荐推荐,让我的技术可以在贵司发挥价值,实现双赢(初步设想可以数据顾问的方式或一些小型项目开发的方式合作)。

    相关文章

      网友评论

        本文标题:Excel催化剂开源第17波-VSTO开发之ADO.Net访问S

        本文链接:https://www.haomeiwen.com/subject/bryarqtx.html