private void btnSaveRetVal_Click(object sender, EventArgs e) { if (skinLVMethods.SelectedItems.Count > 0 && skinLVInterfaces.SelectedItems.Count > 0) { try { var a = skinLVMethods.SelectedItems[0]; var intf = skinLVInterfaces.SelectedItems[0]; HA_Method ha_method = new HA_Method { intf_code = a.SubItems[0].Text, m_name = a.SubItems[1].Text, m_code = a.SubItems[2].Text, m_desc = a.SubItems[3].Text, //m_reqtype = a.SubItems[4].Text, m_template = Convert.ToInt32(a.SubItems[4].Text), m_version = a.SubItems[5].Text, m_funcode = a.SubItems[6].Text, m_isencrypted = false, //a.SubItems[2].Text, m_arggrpcode = a.SubItems[8].Text, m_rtnvaluecode = a.SubItems[9].Text, m_pagesize = Convert.ToInt32(a.SubItems[10].Text) }; //1.connStr: 通过intf_code得到 interface上的dbConn,取出connStr和DBType string connStr = ""; string connName = ""; string dbType = ""; string intfcode = ha_method.intf_code; DbService db = DB.GetMainDb(); Hashtable htPara = new Hashtable(); htPara.Add("intf_code", intfcode); DataSet tempds = db.ExecuteSqlID("GetInterface2", htPara); if (tempds != null && tempds.Tables.Count > 0) { if (tempds.Tables[0].Rows.Count > 0) { connName = tempds.Tables[0].Rows[0]["intf_dbconn"].ToString(); } } if (string.IsNullOrEmpty(connName)) { MessageBox.Show("接口没有配置数据库连接"); return; } //2.dt SqlSugar.DbType sdt = SqlSugar.DbType.SqlServer; Hashtable htParaConn = new Hashtable(); htParaConn.Add("conn_name", connName); tempds = db.ExecuteSqlID("GetConnection2", htParaConn); if (tempds != null && tempds.Tables.Count > 0) { if (tempds.Tables[0].Rows.Count > 0) { connStr = tempds.Tables[0].Rows[0]["conn_string"].ToString(); dbType = tempds.Tables[0].Rows[0]["conn_dbtype"].ToString(); } } if (string.IsNullOrEmpty(connStr)) { MessageBox.Show("数据库连接不存在"); return; } switch (dbType) { case "MSSql": sdt = SqlSugar.DbType.SqlServer; break; case "Cache*": break; case "Oracle*": sdt = SqlSugar.DbType.Oracle; break; default: break; } //3.sqlStmt string sqlStmt = ha_method.m_funcode; if (string.IsNullOrEmpty(sqlStmt)) { MessageBox.Show("没有查询语句"); return; } //4.paras 从ag_code里得到 ag组,再去得到所有的参数 string ag_code = ha_method.m_arggrpcode; Hashtable htParaAG = new Hashtable(); htParaAG.Add("ag_code", ag_code); tempds = db.ExecuteSqlID("GetParas2", htParaAG); List <SugarParameter> sParas = new List <SugarParameter>(); if (tempds != null && tempds.Tables.Count > 0) { if (tempds.Tables[0].Rows.Count > 0) { int rowCount = tempds.Tables[0].Rows.Count; for (int i = 0; i < rowCount; i++) { SugarParameter sp = new SugarParameter(tempds.Tables[0].Rows[i]["para_name"].ToString(), tempds.Tables[0].Rows[i]["para_default"].ToString()); sParas.Add(sp); } } } if (sParas.Count == 0) { MessageBox.Show("没有配置参数"); return; } //5 处理pagesize if (!sqlStmt.ToLower().Contains("top")) { if (ha_method.m_pagesize == 0) { sqlStmt = sqlStmt.ToLower().Replace("select", "select top 1"); } else { string topnumber = ha_method.m_pagesize.ToString(); if (ha_method.m_pagesize > 5) { topnumber = "5"; } sqlStmt = sqlStmt.ToLower().Replace("select", "select top " + topnumber); } } string resultJSON = SqlSugarUtils.GetSingleJSONResult(connStr, sdt, sqlStmt, sParas); JsonTool jt = new JsonTool(); //6 美化JSON字符串 resultJSON = jt.ConvertJsonString(resultJSON); edtJson.Text = resultJSON; //7 顺便保存到 RetVO 的 类JSON里去 Hashtable htParaRV = new Hashtable(); htParaRV.Add("rv_name", "ret" + ha_method.m_code); tempds = db.ExecuteSqlID("GetRetVO2", htParaRV); if (tempds != null && tempds.Tables.Count > 0) { HA_RetValObjectDAL dal = new HA_RetValObjectDAL(); HA_RetValObject rvo = new HA_RetValObject { rv_name = "ret" + ha_method.m_code, rv_exttype = tempds.Tables[0].Rows[0]["rv_exttype"].ToString(), rv_note = tempds.Tables[0].Rows[0]["rv_note"].ToString(), rv_JSON = resultJSON }; bool ret = dal.Update(rvo); if (ret == false) { MessageBox.Show("保存到RetVO失败 : " + ret); } } //8 顺手将json转换为类文件 #region 测试后屏蔽这段代码 //string destFolder = System.AppDomain.CurrentDomain.BaseDirectory; //destFolder += ha_method.intf_code + @"\" + ha_method.m_code + @"\Model"; //DirectoryInfo di = new DirectoryInfo(destFolder); //if (di.Exists == false) //{ // Directory.CreateDirectory(destFolder); //} //bool writeClassRet = RunTimeHelper.GenClassStringByJSON(resultJSON, "ILAK.API", "ILAK.API.Model", destFolder, "ret" + ha_method.m_code); //if (!writeClassRet) //{ // MessageBox.Show("写文件失败"); //} #endregion } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
private void btnTestConn_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(txtConnStrGen.Text)) { try { if (skinLVConns.SelectedItems.Count > 0) { labelConnStatus.Text = ""; var a = skinLVConns.SelectedItems[0]; string testConnStr = txtConnStrGen.Text; string DataBaseType = a.SubItems[5].Text; SqlSugar.DbType sdt = SqlSugar.DbType.SqlServer; switch (DataBaseType) { case "MSSql": sdt = SqlSugar.DbType.SqlServer; break; case "Cache*": break; case "Oracle*": sdt = SqlSugar.DbType.Oracle; break; default: break; } using (SqlSugarClient ssc = SqlSugarUtils.GetDb(testConnStr, sdt)) { List <DbColumnInfo> columns = new List <DbColumnInfo>(); DbColumnInfo column = new DbColumnInfo(); column.DataType = "varchar"; column.DbColumnName = "testcol"; column.Length = 50; columns.Add(column); bool result = ssc.DbMaintenance.CreateTable("HydTestDbTable", columns); if (result) { ssc.DbMaintenance.DropTable("HydTestDbTable"); labelConnStatus.Text = "测试成功!"; } else { labelConnStatus.Text = "连接失败!"; } } } } catch (Exception ex) { labelConnStatus.Text = "连接失败! " + ex.Message; } } else { MessageBox.Show("请先 生成连接字符串"); } }
private void btnPreviewReq_Click(object sender, EventArgs e) { #region 调用返回json串的操作 //SqlSugarUtils ssu = new SqlSugarUtils(); //string resultJSON = ssu.TestGetDbAndOperate(); //JsonTool jt = new JsonTool(); //resultJSON = jt.ConvertJsonString(resultJSON); //edtJson.Text = resultJSON; #endregion try { if (skinLVMethods.SelectedItems.Count > 0) { var a = skinLVMethods.SelectedItems[0]; HA_Method ha_method = new HA_Method { intf_code = a.SubItems[0].Text, m_name = a.SubItems[1].Text, m_code = a.SubItems[2].Text, m_desc = a.SubItems[3].Text, //m_reqtype = a.SubItems[4].Text, m_template = Convert.ToInt32(a.SubItems[4].Text), m_version = a.SubItems[5].Text, m_funcode = a.SubItems[6].Text, m_isencrypted = false, //a.SubItems[2].Text, m_arggrpcode = a.SubItems[8].Text, m_rtnvaluecode = a.SubItems[9].Text, m_pagesize = Convert.ToInt32(a.SubItems[10].Text) }; string m_code = a.SubItems[2].Text; SugarParameter sp = new SugarParameter("m_code", m_code); List <SugarParameter> lsp = new List <SugarParameter>(); lsp.Add(sp); string sysConnString = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; //查询所有参数 string sqlStmt = @"SELECT a.[para_name] ,a.[para_default] ,a.[para_datatype] FROM [dbo].[HA_Parameter] a left join [dbo].[HA_ArgGroup] b on a.para_code in (select col from dbo.split((select i.ag_paras from [dbo].[HA_ArgGroup] i where i.ag_code=b.ag_code)+',' ,',')) left join [dbo].[HA_Method] c on c.m_arggrpcode = b.ag_code where c.m_code =@m_code"; using (DataTable dt = SqlSugarUtils.GetQueryDataTableResult(sysConnString, sqlStmt, lsp)) { int columnNumber = dt.Columns.Count; int rowNumber = dt.Rows.Count; //var obj = DynamicParasFactory.ConstructRequestObject(dt); string codeString = DynamicParasFactory.CodeBuilder(dt); string resultJSON = DynamicParasFactory.TranslateObjectInCodeToJSON(codeString); JsonTool jt = new JsonTool(); //美化JSON字符串 resultJSON = jt.ConvertJsonString(resultJSON); edtJson.Text = resultJSON; #region 测试完成后屏蔽这段代码 //string destFolder = System.AppDomain.CurrentDomain.BaseDirectory; //destFolder += ha_method.intf_code + @"\" + ha_method.m_code + @"\Model"; //DirectoryInfo di = new DirectoryInfo(destFolder); //if (di.Exists == false) //{ // Directory.CreateDirectory(destFolder); //} //bool writeClassRet = RunTimeHelper.GenClassStringByJSON(resultJSON, "ILAK.API", "ILAK.API.Model", destFolder, "Req" + ha_method.m_arggrpcode); //if (!writeClassRet) //{ // MessageBox.Show("写文件失败"); //} #endregion } } } catch (Exception ex) { throw ex; } }