简单模拟SQL视图管理工具原创
14人赞赏了该文章
1,211次浏览
编辑于2021年12月17日 14:57:42
本功能只为方便本地系统进行测试和学习,请勿在正式环境使用。
有时候不方便直接连数据库的时候,需要执行或者查询一些命令时,就比较麻烦。而且测试发现,生成部署包或者直接导入SQL脚本都是不能执行SQL命令的。所以新增了个简单查询和执行SQL命令的功能。
如果是单表格,可以直接以表格形式显示数据。多表格只显示JSON格式。部分代码展示
public bool IsXuhao = true; private void BindData(DataTable dt) { string[] fieldNames = new string[dt.Columns.Count]; for (int i = 0; i < dt.Columns.Count; i++) { fieldNames[i] = dt.Columns[i].ColumnName; } var actionData = new JSONObject(); actionData["key"] = entityKey; actionData["methodname"] = "CreateDyanmicList"; JSONArray coMeta = new JSONArray(); coMeta.Add(GetColumns(fieldNames)); coMeta.Add(""); actionData["args"] = coMeta; this.View.AddAction("InvokeControlMethod", actionData, x => { var grid = this.View.GetControl<EntryGrid>(entityKey); grid.SetData(GetEntityData(fieldNames,dt)); }); } private JSONObject GetColumns(string[] fieldNames) { var entityAppearance = this.View.LayoutInfo.GetEntityAppearance(entityKey); var gridMeta = entityAppearance.CreateControl(); gridMeta.Put("primaryKey", ExtConst.GRID_INDEX_FIELD_KEY); gridMeta.Put("indexKey", ExtConst.GRID_INDEX_FIELD_KEY); gridMeta.Put("startRow", 0); gridMeta.Put("pageSize", entityAppearance.PageRows); var columns = (JSONArray)gridMeta["columns"]; int sindex = 0; if (IsXuhao) { var col = new JSONObject(); var xtype = "textfield"; col.Put("xtype", xtype); col.Put("colIndex", 0); col.Put("dataIndex", "序号"); col.Put("header", "序号"); col.Put("width", "50"); col.Put("visible", true); columns.Add(col); sindex = 1; } for (int i = 0; i < fieldNames.Length; ++i) { var fieldName = fieldNames[i]; var col = new JSONObject(); var xtype = "textfield"; col.Put("xtype", xtype); col.Put("colIndex", i+sindex); col.Put("dataIndex", fieldName); col.Put("header", fieldName); col.Put("width", "100"); col.Put("visible", true); // 如果需要某列的单元格可编辑,必须设置该列的编辑控件属性 col.Put("editor", CreateEditorControl(xtype)); columns.Add(col); } return gridMeta; } private JSONObject CreateEditorControl(string xtype) { var ctlRet = new JSONObject(); ctlRet.Put("xtype", xtype); ctlRet.Put("editable", true); return ctlRet; } /// <summary> /// 生成表格数据 /// </summary> /// <returns></returns> private JSONObject GetEntityData(string [] fieldNames ,DataTable dt) { var data = new JSONObject(); var rows = new JSONArray(); for (var x = 0; x < dt.Rows.Count; ++x) { var row = new JSONArray(); // row.Add(x); if (IsXuhao) { row.Add(x + 1); } foreach (var fieldName in fieldNames) { row.Add( dt.Rows[x][fieldName].ToString()); } rows.Add(row); } data.Put("rows", rows); return data; }
赞 14
14人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读
您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!
请选择打赏金币数 *
10金币20金币30金币40金币50金币60金币
可用金币: 0