二开案例.表单插件.访问MySql
【应用场景】
在星空的插件中访问MySQL数据库。
【注意事项】
<1>星空内置了组件MySql.Data.dll,导致其版本必须是:6.8.4,高了低了都不行。您在使用该组件编译二开插件项目的时候,需确保是使用的此版本,否则运行时会报错中断。
<2>由于MySql.Data.dll本身的bug,目前MySql8系列无法搭配6.8.4的MySql.Data.dll使用,MySql5系列可以,请注意避坑。
更多兼容性问题解决方案请参考:
https://vip.kingdee.com/questions/385390466256681984
https://learn.microsoft.com/zh-cn/dotnet/framework/configure-apps/file-schema/runtime/
【案例演示】
采购订单,表单插件,访问MySQL数据库,读写数据。
【环境准备】
安装MySql5.7,提前建库建表。
--MySql版本:5.7 CREATE SCHEMA `testdb` DEFAULT CHARACTER SET gb2312; CREATE TABLE `testdb`.`t_jac_log` ( `id` INT NOT NULL AUTO_INCREMENT, `msg` NVARCHAR(200) NULL, `log` NVARCHAR(4000) NULL, `creatorid` INT NULL, `createtime` DATETIME NULL, PRIMARY KEY (`id`) );
【实现步骤】
<1>编写表单插件,代码如下。
using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Util; using MySql.Data.MySqlClient; using System; using System.ComponentModel; using System.Data; namespace Jac.XkDemo.BOS.Business.PlugIn { /// <summary> /// 【表单插件】访问MySql /// </summary> [Description("【表单插件】访问MySql"), HotUpdate] public class AccessMySqlFormPlugIn : AbstractDynamicFormPlugIn { /// <summary> /// MySQL数据库连接字符串 /// </summary> private string connectionString = "server=localhost;user id=jac;password=888888;database=testdb;charset=gb2312;"; public override void AfterBindData(EventArgs e) { base.AfterBindData(e); Do(); } private void Do() { var ds = new DataSet(); using (var con = new MySqlConnection(connectionString)) { con.Open(); var insertSql = "insert into t_jac_log (msg,log,creatorid,createtime) values ('保存','单据编号为CGDD0006的采购订单保存成功!',1,now())"; var cmd = new MySqlCommand(insertSql, con); var rval = cmd.ExecuteNonQuery(); var selectSql = "select * from t_jac_log"; var da = new MySqlDataAdapter(selectSql, con); da.Fill(ds); con.Close(); } this.View.ShowMessage("日志总行数:" + ds.Tables[0].Rows.Count); } } } /* --MySql版本:5.7 CREATE SCHEMA `testdb` DEFAULT CHARACTER SET gb2312; CREATE TABLE `testdb`.`t_jac_log` ( `id` INT NOT NULL AUTO_INCREMENT, `msg` NVARCHAR(200) NULL, `log` NVARCHAR(4000) NULL, `creatorid` INT NULL, `createtime` DATETIME NULL, PRIMARY KEY (`id`) ); */
<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<3>BOSIDE扩展采购订单,注册表单插件,保存元数据,开发完毕。
【功能验证】
<1>登录业务站点,打开采购订单新增界面,此时日志数据已被写入MySQL数据库。
---------------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
二开案例.表单插件.访问MySql
【应用场景】在星空的插件中访问MySQL数据库。【注意事项】<1>星空内置了组件MySql.Data.dll,导致其版本必须是:6.8.4,高了低了都不行。...
点击下载文档
上一篇:二开案例.表单插件.多类别基础资料列表下一篇:表达式.函数.工作流
本文2024-09-23 03:58:17发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-162270.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章