FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 1904|回复: 3
打印 上一主题 下一主题

APPBOX数据库改成ACCESS

[复制链接]
跳转到指定楼层
楼主
发表于 2013-11-14 22:54:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 甘桂 于 2013-11-14 22:56 编辑

为了让更多新手对EF不熟悉的人使用FINEUI,为了加了推广与应用FINEUI。本人对APPBOX 2.0的代码小改一下,使用ACCESS数据库,可以建立小项目。直接在后台执行SQL语句,简短明了。
1、把SQL SERVER数据库表全部导出到ACCESS里,并把X_TABLENAME改成了Sys_TABLENAME
2、为了简单省事,去掉所有using SubSonic的引用,DLL文件删除了。CUSTOMMENU.CS,CUSTOMTREE.CS,PAGEBASE.CN这三个文件保留。(其实也可以不要的。)
3,引用数据库操作类


/// <summary>
/// access 的摘要说明
/// </summary>
public class access
{
        public access()
        {
               
        }
   // public static string connstring = "rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Web.HttpContext.Current.Server.MapPath("~/App_Data/DataBase.mdb") + "ersist Security Info=True;Jet OLEDBatabase Password=";
    public static string connstring = "rovider=Microsoft.ACE.OLEDB.12.0;Data Source=" + System.Web.HttpContext.Current.Server.MapPath("~/App_Data/DataBase_fine.accdb") + ";Jet OLEDBatabase Password=PASSWORD";//OFFICE ACCESS 2007以上版本

    public static DataSet GreatDs(string sql)
    {
        OleDbDataAdapter Dar = new OleDbDataAdapter(sql, connstring);

        DataSet ds = new DataSet();
        Dar.Fill(ds);
        return ds;
    }
    public static void DoSql(string sql)
    {
        OleDbConnection conn = new OleDbConnection();//创建连接对象
        conn.ConnectionString = connstring;//给连接字符串赋值
        conn.Open();//打开数据库
        OleDbCommand cmd = new OleDbCommand(sql, conn);
        cmd.ExecuteNonQuery();//
        conn.Close();//关闭数据库
    }
}

4,重点工作如下:
    // 工具栏上的帮助菜单
            string sql = "select * from Sys_Config where ConfigKey='HelpList'";//直接SQL查询
            DataTable dt = new DataTable();
            dt = access.GreatDs(sql).Tables[0];  

            JArray ja = JArray.Parse(dt.Rows[0]["ConfigValue"].ToString());
            foreach (JObject jo in ja)
            {
                MenuButton menuItem = new MenuButton();
                menuItem.EnablePostBack = false;
                menuItem.Text = jo.Value<string>("Text");
                //menuItem.Icon = (Icon)StringUtil.EnumFromName(typeof(Icon), jo.Value<string>("Icon"));
                menuItem.Icon = IconHelper.String2Icon(jo.Value<string>("Icon"), true);
                menuItem.OnClientClick = String.Format("addExampleTab('{0}', '{1}', '{2}')", jo.Value<string>("ID"), ResolveUrl(jo.Value<string>("URL")), jo.Value<string>("Text"));

                btnHelp.Menu.Items.Add(menuItem);
            }
这个地方三石使用了数组,对一般人员维护不方面,建议直接使用TOOLS 表。就不需要再进行JARRAY处理了。名称,地址,图标维护一目了然。

/// <summary>
        /// 创建手风琴菜单
        /// </summary>
        /// <param name="menus"></param>
        /// <returns></returns>
        private Accordion InitAccordionMenu(List<CustomMenu> menus)
        {
            Accordion accordionMenu = new Accordion();
            accordionMenu.ID = "accordionMenu";
            accordionMenu.EnableFill = true;
            accordionMenu.ShowBorder = false;
            accordionMenu.ShowHeader = false;
            regionLeft.Items.Add(accordionMenu);

            string sqlacc = "select * from Sys_menu order by SortIndex";
            DataTable dtacc = new DataTable();
            dtacc = access.GreatDs(sqlacc).Tables[0];
            foreach (DataRow row in dtacc.Rows)
            {
                if (Convert.ToInt16(row["arentMenuId"].ToString()) == 0)
                {
                    AccordionPane accordionPane = new AccordionPane();
                    accordionPane.Title = row["Title"].ToString();
                    accordionPane.Layout = Layout.Fit;
                    accordionPane.ShowBorder = false;
                    accordionPane.BodyPadding = "2px 0 0 0";
                    accordionPane.IconUrl = row["ImageUrl"].ToString();
                    accordionMenu.Items.Add(accordionPane);

                    Tree innerTree = new Tree();
                    innerTree.EnableArrows = true;
                    innerTree.ShowBorder = false;
                    innerTree.ShowHeader = false;
                    innerTree.EnableIcons = false;
                    innerTree.AutoScroll = true;
                    accordionPane.Items.Add(innerTree);


                    // 生成树
                    ResolveMenuTree(menus, Convert.ToInt16(row["ID"].ToString()), innerTree.Nodes);

                }
            }

            return accordionMenu;
        }

这里在原来的代码上加了accordionPane.IconUrl = row["ImageUrl"].ToString();就是今天看到一个人在论坛里问怎么加上图标。
增加,修改,删除就不用说了。调用ACCESS类,直接使用DoSql(string sql)就OK了。
不知道大家有没有目的地明白。风格引用示例,我认为不要在数据表里调用风格了,每台电脑要有不同的风格,加载时也快。
等到三石出4.0正式版时,本人有时间为大家做APPBOX三层数据结构。本人也要求过三石这样搞,估计他没有时间。
为了更好的推广FINEUI,作出自己的一点力量!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
板凳
发表于 2013-11-17 00:30:15 | 只看该作者
{:soso_e179:}
地板
发表于 2013-11-18 13:02:42 | 只看该作者
先强烈支持一下 .       改后的源码呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-27 18:39 , Processed in 0.046453 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表