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

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

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

  1. 和数据库交互的使用群体太窄,除非极个别数据分析师会用到
  2. 这个问题的确存在,在Excel群体中,能够有机会接触到数据库层面的聊聊无几,当属于最上层高级Excel用户才会涉猎,对Excel催化剂来说,本来群体已定位为重度Excel高级用户使用,有此功能才显得插件的饱满性。
  3. 开发者本身不懂数据库,更无从开发数据库相关的功能
  4. 这个原因也很普遍,看市面上的书籍,除非专业大部头的Excel书,才会简单介绍下数据库的方面的知识,大众书籍里少有提及,但开发插件的书籍倒有许多,所以造成了很大部分的Excel开发群体是不懂数据库的。
  5. 对Excel催化剂来说,既然是提供催化剂般震撼性效果,没有数据库,也谈不成如何地震撼,毕竟少数据量情形下,手工做和插件实现,也就是几个小时和1分钟的区别,Excel催化剂想要的极致效果是不可能实现和1分钟的事情。
  6. 和数据库交互的功能都躲藏在各大商业定制化插件领域
  7. 许多的商业系统,因其数据交互的需要,很多时候会开发一些Excel插件来辅助系统一起运作,当然更多地是对系统数据查询层面,在数据上传、执行SQL语句等方面,肯定不会开放这样的功能的。
  8. Excel催化剂非一般性的小白收割机,也非一般性的IT财团卖钱包装机,所以很另类地提供了数据库交互功能,在免费的方式下即可使用,造福了大片的群体。

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

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

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

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

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

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

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

SqlHelper源码帖出太大,已超出文章承受内容量,可私聊获取或到简书上查看。

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

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

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

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语句执行出错,出错原因为
" + ex.Message);
 sqlTransaction.Rollback();
 }
 };

结语

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

展开阅读全文

页面更新:2024-03-10

标签:催化剂   轮子   开发者   底层   笔者   插件   群体   能力   书籍   代码   功能   方式   数据库   数据   数码   系统

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top