二开案例.表单插件.访问MySql

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

二开案例.表单插件.访问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,高了低了都不行。...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息