public ActionResult Create([Bind(Include = "ModGUID,ModName,ModUid,ModPassword,ModDataBase,ModServer,ModDataSource,ModRemark")] DSTreeModel dSTreeModel) { if (ModelState.IsValid) { dSTreeModel.ModGUID = Guid.NewGuid(); dSTreeModel.ModStatus = "等待执行"; db.DSTreeModel.Add(dSTreeModel); db.SaveChanges(); SQLHelper sqdb = new SQLHelper(dSTreeModel.GetConnString()); string sDataSource = "select top 1 * from (" + dSTreeModel.ModDataSource + ") tmp"; DataTable dt = sqdb.GetTable(sDataSource); if (dt != null) { int ic = dt.Columns.Count; DataTable dtCNPy = NPy.getDtCNPy(dt, ic); List <DSTreeCEMap> ldstcm = new List <DSTreeCEMap>(); for (int i = 0; i < ic; i++) { DSTreeCEMap dstcm = new DSTreeCEMap(); dstcm.CEMapGUID = Guid.NewGuid(); dstcm.ModGUID = dSTreeModel.ModGUID; dstcm.CCellName = dt.Columns[i].ColumnName; dstcm.ECellName = dtCNPy.Select("cnC='" + dstcm.CCellName + "'")[0][1].ToString(); db.DSTreeCEMap.Add(dstcm); } db.SaveChanges(); } return(RedirectToAction("Index", new { ModGUID = dSTreeModel.ModGUID })); } return(View(dSTreeModel)); }
/// <summary> /// 将dt中中文转换成拼音形成dataFrame格式 /// </summary> /// <param name="dt"></param> /// <returns></returns> public override void setDataFrameInRByDt(DataTable dt) { int ir = dt.Rows.Count; int ic = dt.Columns.Count; string str1, str2, str3; //List<Thread> lt = new List<Thread>(); Task[] ts = new Task[ic]; try { if (ir > 0) { DtPy = NPy.getDtPy(dt, ic); str1 = DfName + "<-data.frame("; str2 = ""; for (int i = 0; i < ic; i++) { string strcn = dt.Columns[i].ColumnName; DataTable dtc = dt.DefaultView.ToTable(false, strcn); ColStr cs = new ColStr(dtc, DtPy, ir); ts[i] = new Task(cs.setStrCol); ts[i].Start(); } dt.Dispose(); Task.WaitAll(ts); foreach (Task t in ts) { t.Dispose(); } RColList rcl = RColList.getInstance(); str2 = string.Join(",", rcl); str1 += str2 + ")"; DfR = str1; rcl.Clear(); } } catch (Exception e) { DfR = ""; Log.Error(e.Message); } }