<%@ WebHandler Language = "C#" Class="MESCommonBase" %> using System; using System.Web; using Newtonsoft.Json; using System.Text; using System.Linq; using System.Collections.Generic; using System.IO; using System.Web.Script.Serialization; using System.Data; //using BizDataAccess; using System.Data.SqlClient;//uploadInvoiceScan.ashx using DataLinkMesWork; using NPOI.HSSF.UserModel; using NPOI.SS.Formula.Functions; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; //using DbCallData; using BasicData; //using LitJson; using DataLinkMesWork; using System.Text.RegularExpressions; public class MESCommonBase : IHttpHandler { public bool IsReusable { get { return false; } } public void ProcessRequest(HttpContext context) { context.Response.ContentType = "application/json"; var data = context.Request; var stream = new StreamReader(data.InputStream).ReadToEnd(); string InvoiceNum; //JsonData jsonData; string responseText = "NULL"; byte[] bytes = null; string fileName = "test.xsl"; try { JsonData jsonData=null; try { jsonData = JsonMapper.ToObject(stream); } catch(Exception err) { } int type=0; try { if(jsonData!=null) { if(jsonData.ContainsKey("Type")) { type = Int32.Parse( jsonData["Type"].ToString()); }else if(jsonData.ContainsKey("type")) { type = Int32.Parse( jsonData["type"].ToString()); } } } catch { } jsonobj dataobj=null; try { dataobj = new JavaScriptSerializer().Deserialize(stream); if(dataobj!=null) { type = Int32.Parse(dataobj.Type); } } catch(Exception err) { dataobj = null; } if(dataobj==null) { try { InvoiceNum = HttpContext.Current.Request["param"]; if(InvoiceNum!=null) { jsonData = JsonMapper.ToObject(InvoiceNum); if(jsonData.ContainsKey("Type")) { type = Int32.Parse( jsonData["Type"].ToString()); }else if(jsonData.ContainsKey("type")) { type = Int32.Parse( jsonData["type"].ToString()); } } } catch { jsonData = null; } } string fileExtension=""; HttpFileCollection files; string suffix; string name; switch(type) { case 3001: try { //responseText = DataLinkMesWork.DbCallType1003_SqlCmd.SqlExec(dataobj.Param, jsonData); } catch (Exception err){} context.Response.Write(responseText); break; case 2001: //DataLink.LogJsonData(jsonData); MESDownloadExcel.ExcelWebCall.ExcelFile(jsonData,out bytes,out fileName,ref fileExtension); fileName = fileName + "."+fileExtension; HttpContext.Current.Response.ContentType = "application/octet-stream"; //HttpContext.Current.Response.ContentType = getContentType(extension); //通知浏览器下载文件而不是打开 HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); HttpContext.Current.Response.AddHeader("Access-Control-Expose-Headers", "Content-Disposition"); HttpContext.Current.Response.BinaryWrite(bytes); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.End(); break; case 2201: string Sn = jsonData["name"].ToString(); if (Sn.Length < 1) return; //DataLink.LogJsonData(jsonData); fileName = Sn + ".xls"; Excel_SY_OutPut2201(Sn, out bytes); HttpContext.Current.Response.ContentType = "application/octet-stream"; //HttpContext.Current.Response.ContentType = getContentType(extension); //通知浏览器下载文件而不是打开 HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); HttpContext.Current.Response.AddHeader("Access-Control-Expose-Headers", "Content-Disposition"); HttpContext.Current.Response.BinaryWrite(bytes); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.End(); break; case 2002: //DataLink.LogJsonData(jsonData); MESDownloadExcel.ExcelWebCall.ExcelFilePdf(jsonData,out bytes,out fileName,out fileExtension); fileName = fileName + "."+fileExtension; HttpContext.Current.Response.ContentType = "application/octet-stream"; //HttpContext.Current.Response.ContentType = getContentType(extension); //通知浏览器下载文件而不是打开 HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); HttpContext.Current.Response.AddHeader("Access-Control-Expose-Headers", "Content-Disposition"); HttpContext.Current.Response.BinaryWrite(bytes); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.End(); break; case 2003:// 合成excel图片,下载 string[] dataimg; if(context.Request.Form.Keys.Count>0) { dataimg = data.Form.GetValues(0); MESDownloadExcel.ExcelWebCall.ExcelFile(jsonData,out bytes,out fileName,ref dataimg[0]); if (bytes == null) return; fileName = fileName + "."+dataimg[0]; HttpContext.Current.Response.ContentType = "application/octet-stream"; //HttpContext.Current.Response.ContentType = getContentType(extension); //通知浏览器下载文件而不是打开 HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); HttpContext.Current.Response.AddHeader("Access-Control-Expose-Headers", "Content-Disposition"); HttpContext.Current.Response.BinaryWrite(bytes); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.Close(); //HttpContext.Current.Response.End(); //if(DataLinkMesWork.DataLink.isBakup=="1") //{ // DataLinkMesWork.DataLink.ExePROCEDURE_Type16_Bakup(jsonData, out bytes, out fileName, out suffix); //} } break; case 2004: //DataLink.LogJsonData(jsonData); DataLinkMesWork.DataLink.ExePROCEDURE_Type2004(jsonData, out bytes, out fileName, out fileExtension); //MESDownloadExcel.ExcelWebCall.ExcelFile(jsonData,out bytes,out fileName,ref fileExtension); fileName = fileName + "."+fileExtension; HttpContext.Current.Response.ContentType = "application/octet-stream"; //HttpContext.Current.Response.ContentType = getContentType(extension); //通知浏览器下载文件而不是打开 HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); HttpContext.Current.Response.AddHeader("Access-Control-Expose-Headers", "Content-Disposition"); HttpContext.Current.Response.BinaryWrite(bytes); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.End(); break; case 15://上传文件 files = context.Request.Files; if (files.Count > 0) { fileName = files[0].FileName; bytes = new byte[files[0].InputStream.Length]; files[0].InputStream.Read(bytes, 0, bytes.Length); suffix = fileName.Substring(fileName.LastIndexOf(".")+1); name = fileName.Substring(0,fileName.LastIndexOf(".")); responseText = DataLinkMesWork.DataLink.ExePROCEDURE_Type15(jsonData, name, suffix, bytes); context.Response.Write(responseText); //if(DataLinkMesWork.DataLink.isBakup=="1") //{ // DataLinkMesWork.DataLink.ExePROCEDURE_Type15_Bakup(jsonData, name, suffix, bytes); //} } else { fileName = ""; bytes = new byte[1]; suffix = ""; name = ""; responseText = DataLinkMesWork.DataLink.ExePROCEDURE_Type15(jsonData, name, suffix, bytes); context.Response.Write(responseText); //if(DataLinkMesWork.DataLink.isBakup=="1") //{ // DataLinkMesWork.DataLink.ExePROCEDURE_Type15_Bakup(jsonData, name, suffix, bytes); //} } break; case 16://上传文件 DataLink.LogJsonData(jsonData); DataLinkMesWork.DataLink.ExePROCEDURE_Type16(jsonData, out bytes, out fileName, out suffix); if (bytes == null) return; fileName = fileName + "."+suffix; HttpContext.Current.Response.ContentType = "application/octet-stream"; //HttpContext.Current.Response.ContentType = getContentType(extension); //通知浏览器下载文件而不是打开 HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); HttpContext.Current.Response.AddHeader("Access-Control-Expose-Headers", "Content-Disposition"); HttpContext.Current.Response.BinaryWrite(bytes); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.End(); //if(DataLinkMesWork.DataLink.isBakup=="1") //{ // DataLinkMesWork.DataLink.ExePROCEDURE_Type16_Bakup(jsonData, out bytes, out fileName, out suffix); //} break; case 4000: string userIP; HttpRequest Request = HttpContext.Current.Request; // 如果使用代理,获取真实IP if (context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != "") userIP = context.Request.ServerVariables["REMOTE_ADDR"]; else userIP = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (userIP == null || userIP == "") userIP = context.Request.UserHostAddress; context.Response.Write(userIP); break; default: DataLink.LogJsonData(jsonData); responseText = DataLinkMesWork.DataLink.SqlWebCall(type,jsonData,dataobj); context.Response.Write(responseText); //if(DataLinkMesWork.DataLink.isBakup=="1") //{ // DataLinkMesWork.DataLink.SqlWebCall_Bakup(type,jsonData,dataobj); //} break; } } catch(Exception err) { context.Response.Write(responseText); } } static public void Excel_SY_OutPut2201(string Sn, out byte[] bytes) { DataTable dt1 = new DataTable(); SqlParameter[] thisParms1 = new SqlParameter[1]; thisParms1[0] = new SqlParameter("总成号", Sn); string proName1 = "质量数据报表_表头数据查询"; DataLink.ExecuteStoredProcedure(proName1, ref thisParms1, out dt1); DataTable dt2 = new DataTable(); SqlParameter[] thisParms2 = new SqlParameter[1]; thisParms2[0] = new SqlParameter("总成号", Sn); string proName2 = "质量数据报表_质量数据"; DataLink.ExecuteStoredProcedure(proName2, ref thisParms2, out dt2); DataTable dt3 = new DataTable(); SqlParameter[] thisParms3 = new SqlParameter[1]; thisParms3[0] = new SqlParameter("总成号", Sn); string proName3 = "质量数据报表_过站数据"; DataLink.ExecuteStoredProcedure(proName3, ref thisParms3, out dt3); DataTable dt4 = new DataTable(); var res = Func( dt1, dt2, dt3, dt4,out bytes); //WriteExcel1001(ref wk, ds, firstBodyRow, ishasbottom); //OutExcelFileMemoryStream(wk, out bytesOut); } static bool Func( DataTable dt1, DataTable dt2, DataTable dt3, DataTable dt4,out byte[] bytes) { bytes = null; try { string filePath = AppDomain.CurrentDomain.BaseDirectory+"\\TemplateMES.xls"; //Server.MapPath(“~”) \\ Server.MapPath("/WebSite1") // IWorkbook wk = null;// --GetHSSFWorkbook(bytes, fileExtension); //var filePath = "TemplateMES.xls"; // File.Copy(filePath, outPath, true); using (FileStream fs = File.OpenRead(filePath)) { IWorkbook workbook = null; // 2007+ if (filePath.IndexOf(".xlsx") > 0) { workbook = new XSSFWorkbook(fs); } // 2003- else if (filePath.IndexOf(".xls") > 0) { workbook = new HSSFWorkbook(fs); } ISheet sheet = workbook.GetSheetAt(0); // 从后往前写,避免增加行的问题 sheet.GetRow(34).GetCell(0).SetCellValue("制单人:" + dt1.Rows[0]["制单人"].ToString()); sheet.GetRow(34).GetCell(3).SetCellValue("版本号:" + dt1.Rows[0]["版本号"].ToString()); sheet.GetRow(34).GetCell(7).SetCellValue("保存期限:" + dt1.Rows[0]["保存期限"].ToString()); sheet.GetRow(35).GetCell(0).SetCellValue("制单日期:" + dt1.Rows[0]["制单日期"].ToString()); sheet.GetRow(35).GetCell(3).SetCellValue("表单编号:" + dt1.Rows[0]["表单编号"].ToString()); for (int i = 0; i < dt3.Rows.Count; i++) { sheet.CopyRow(28, 28 + i + 1); } try { for (int i = 0; i < dt3.Rows.Count; i++) { sheet.GetRow(28 + i).GetCell(0).SetCellValue(i+1); sheet.GetRow(28 + i).GetCell(1).SetCellValue(dt3.Rows[i]["工位号"].ToString()); sheet.GetRow(28 + i).GetCell(2).SetCellValue(dt3.Rows[i]["工位名称"].ToString()); sheet.GetRow(28 + i).GetCell(3).SetCellValue(dt3.Rows[i]["在线时间"].ToString()); sheet.GetRow(28 + i).GetCell(4).SetCellValue(dt3.Rows[i]["到达时间"].ToString()); sheet.GetRow(28 + i).GetCell(6).SetCellValue(dt3.Rows[i]["离开时间"].ToString()); sheet.GetRow(28 + i).GetCell(9).SetCellValue(dt3.Rows[i]["是否合格"].ToString()); sheet.GetRow(28 + i).GetCell(10).SetCellValue(dt3.Rows[i]["操作者工号"].ToString()); sheet.GetRow(28 + i).GetCell(11).SetCellValue(dt3.Rows[i]["说明"].ToString()); } } catch { } try { sheet.GetRow(17).GetCell(0).SetCellValue("检测时间:" + dt1.Rows[0]["检测时间"].ToString()); sheet.GetRow(18).GetCell(0).SetCellValue("机型代码:" + dt1.Rows[0]["机型代码"].ToString()); sheet.GetRow(18).GetCell(3).SetCellValue("1挡速比:" + dt1.Rows[0]["1挡速比"].ToString()); sheet.GetRow(18).GetCell(5).SetCellValue("1挡自学习:" + dt1.Rows[0]["1挡自学习"].ToString()); sheet.GetRow(18).GetCell(7).SetCellValue("1挡NVH:" + dt1.Rows[0]["1挡NVH"].ToString()); sheet.GetRow(18).GetCell(9).SetCellValue("倒挡开关:" + dt1.Rows[0]["倒挡开关"].ToString()); sheet.GetRow(19).GetCell(0).SetCellValue("检测结果:" + dt1.Rows[0]["检测结果"].ToString()); sheet.GetRow(19).GetCell(3).SetCellValue("2挡速比:" + dt1.Rows[0]["2挡速比"].ToString()); sheet.GetRow(19).GetCell(5).SetCellValue("2挡自学习:" + dt1.Rows[0]["2挡自学习"].ToString()); sheet.GetRow(19).GetCell(7).SetCellValue("2挡NVH:" + dt1.Rows[0]["2挡NVH"].ToString()); sheet.GetRow(19).GetCell(9).SetCellValue("空挡开关:" + dt1.Rows[0]["空挡开关"].ToString()); sheet.GetRow(20).GetCell(3).SetCellValue("3挡速比:" + dt1.Rows[0]["3挡速比"].ToString()); sheet.GetRow(20).GetCell(5).SetCellValue("3挡自学习:" + dt1.Rows[0]["3挡自学习"].ToString()); sheet.GetRow(20).GetCell(7).SetCellValue("3挡NVH:" + dt1.Rows[0]["3挡NVH"].ToString()); sheet.GetRow(20).GetCell(9).SetCellValue("取力器PTO:" + dt1.Rows[0]["取力器PTO"].ToString()); sheet.GetRow(21).GetCell(3).SetCellValue("4挡速比:" + dt1.Rows[0]["4挡速比"].ToString()); sheet.GetRow(21).GetCell(5).SetCellValue("4挡自学习:" + dt1.Rows[0]["4挡自学习"].ToString()); sheet.GetRow(21).GetCell(7).SetCellValue("4挡NVH:" + dt1.Rows[0]["4挡NVH"].ToString()); sheet.GetRow(21).GetCell(9).SetCellValue("里程表:" + dt1.Rows[0]["里程表"].ToString()); sheet.GetRow(22).GetCell(3).SetCellValue("5挡速比:" + dt1.Rows[0]["5挡速比"].ToString()); sheet.GetRow(22).GetCell(5).SetCellValue("5挡自学习:" + dt1.Rows[0]["5挡自学习"].ToString()); sheet.GetRow(22).GetCell(7).SetCellValue("5挡NVH:" + dt1.Rows[0]["5挡NVH"].ToString()); sheet.GetRow(22).GetCell(9).SetCellValue("换挡平顺性:" + dt1.Rows[0]["换挡平顺性"].ToString()); sheet.GetRow(23).GetCell(3).SetCellValue("6挡速比:" + dt1.Rows[0]["6挡速比"].ToString()); sheet.GetRow(23).GetCell(5).SetCellValue("6挡自学习:" + dt1.Rows[0]["6挡自学习"].ToString()); sheet.GetRow(23).GetCell(7).SetCellValue("6挡NVH:" + dt1.Rows[0]["6挡NVH"].ToString()); sheet.GetRow(24).GetCell(3).SetCellValue("R挡速比:" + dt1.Rows[0]["R挡速比"].ToString()); sheet.GetRow(24).GetCell(5).SetCellValue("R挡自学习:" + dt1.Rows[0]["R挡自学习"].ToString()); sheet.GetRow(24).GetCell(7).SetCellValue("R挡NVH:" + dt1.Rows[0]["R挡NVH"].ToString()); } catch { } for (int i = 0; i < dt2.Rows.Count; i++) { sheet.CopyRow(10, 10 + i + 1); } try { for (int i = 0; i < dt2.Rows.Count; i++) { sheet.GetRow(10 + i).GetCell(0).SetCellValue(i+1); sheet.GetRow(10 + i).GetCell(1).SetCellValue(dt2.Rows[i]["测量工位号"].ToString()); sheet.GetRow(10 + i).GetCell(2).SetCellValue(dt2.Rows[i]["测量项目描述"].ToString()); sheet.GetRow(10 + i).GetCell(3).SetCellValue(dt2.Rows[i]["测量单位"].ToString()); sheet.GetRow(10 + i).GetCell(4).SetCellValue(dt2.Rows[i]["检验类型"].ToString()); sheet.GetRow(10 + i).GetCell(5).SetCellValue(dt2.Rows[i]["实测值"].ToString()); sheet.GetRow(10 + i).GetCell(6).SetCellValue(dt2.Rows[i]["标准值"].ToString()); sheet.GetRow(10 + i).GetCell(7).SetCellValue(dt2.Rows[i]["上限值"].ToString()); sheet.GetRow(10 + i).GetCell(8).SetCellValue(dt2.Rows[i]["下限值"].ToString()); sheet.GetRow(10 + i).GetCell(9).SetCellValue(dt2.Rows[i]["检验结果"].ToString()); sheet.GetRow(10 + i).GetCell(10).SetCellValue(dt2.Rows[i]["员工工号"].ToString()); sheet.GetRow(10 + i).GetCell(11).SetCellValue(dt2.Rows[i]["说明"].ToString()); } } catch { } try { sheet.GetRow(4).GetCell(0).SetCellValue("订单号:" + dt1.Rows[0]["订单号"].ToString()); sheet.GetRow(4).GetCell(2).SetCellValue("SN号:" + dt1.Rows[0]["SN号"].ToString()); sheet.GetRow(5).GetCell(0).SetCellValue("零件号:" + dt1.Rows[0]["零件号"].ToString()); sheet.GetRow(5).GetCell(2).SetCellValue("福田零件号:" + dt1.Rows[0]["福田零件号"].ToString()); sheet.GetRow(5).GetCell(5).SetCellValue("产品型号:" + dt1.Rows[0]["产品型号"].ToString()); sheet.GetRow(6).GetCell(0).SetCellValue("序列号:" + dt1.Rows[0]["序列号"].ToString()); sheet.GetRow(6).GetCell(2).SetCellValue("生产日期:" + dt1.Rows[0]["生产日期"].ToString()); sheet.GetRow(7).GetCell(0).SetCellValue("检验日期:" + dt1.Rows[0]["检验日期"].ToString()); } catch { } MemoryStream ms = new MemoryStream(); workbook.Write(ms); bytes = ms.ToArray(); //using (FileStream localFs = File.OpenWrite(outPath)) //{ // workbook.Write(localFs); // localFs.Close(); //} } return true; } catch (Exception err) { return false; } } public class SqlCmd { //public Insert Insert; //public Select Select; //public Select_check Select_check; //public Select_pages Select_pages; //public Select_pages_check Select_pages_check; //public Delete Delete; //public Update Update; static public string SqlExec(string sqlCmd) { var cmd = JsonConvert.DeserializeObject(sqlCmd); string result = "{ }"; switch (cmd.cmd) { case Cmd.Insert: result = Insert(sqlCmd); break; case Cmd.Select: result = Select(sqlCmd); break; case Cmd.Select_check: result = Select_check(sqlCmd); break; case Cmd.Select_pages: result = Select_pages(sqlCmd); break; case Cmd.Select_pages_check: result = Select_pages_check(sqlCmd); break; case Cmd.Delete: result = Delete(sqlCmd); break; case Cmd.Update: result = Update(sqlCmd); break; } return result; } static private string Select(string sqlCmd) { string result = "{ }"; string sql = SelectSql(sqlCmd); DataTable dt; SqlCall.ExecuteDataTable(sql, out dt); result = JsonConvert.SerializeObject(dt); return result; } static private string Select_check(string sqlCmd) { string result = "{ }"; string sql = SelectSql_check(sqlCmd); DataTable dt; SqlCall.ExecuteDataTable(sql, out dt); result = JsonConvert.SerializeObject(dt); return result; } static private string Select_pages(string sqlCmd) { string tbname; string fieldkey; string where; string fieldshow; string fieldorder; DataTable dt = new DataTable(); string result = "{ }"; var item = JsonConvert.DeserializeObject(sqlCmd); int pagecurrent = item.PageCurrent; int pagesize = item.PageSize; int pagecount; int itemcount; where = GetWhereString(item.Where, item.WhereTime); where = where.Replace("WHERE", ""); fieldorder = GetOrderPage(item.fieldOrder); fieldshow = Get_fieldshow(item.fieldshow); fieldkey = item.fieldkey; tbname = item.tbname; SqlCall.ExecPageQuery(tbname, fieldkey, where, fieldshow, fieldorder, pagecurrent, pagesize, out pagecount, out itemcount, out dt); result = JsonConvert.SerializeObject(dt); string resultOutput = "[{ \"ItemCount\":\"" + itemcount + "\",\"PageCount\":\"" + pagecount + "\"}]"; string jsonStr = "{\"result\":" + result + "," + "\"output\":" + resultOutput + "}"; result = "{\"result\":" + result + "," + "\"output\":" + resultOutput + "}"; return result; } static private string Select_pages_check(string sqlCmd) { string tbname; string fieldkey; string where; string fieldshow; string fieldorder; int pagecurrent = 1; int pagesize = 15; int pagecount; int itemcount; DataTable dt = new DataTable(); string result = "{ }"; var item = JsonConvert.DeserializeObject(sqlCmd); where = GetWhereString_check(item.Where, item.WhereTime); where = where.Replace("WHERE", ""); fieldorder = GetOrderPage(item.fieldOrder); fieldshow = Get_fieldshow(item.fieldshow); fieldkey = "'" + item.fieldkey + "'"; tbname = item.tbname; SqlCall.ExecPageQuery(tbname, fieldkey, where, fieldshow, fieldorder, pagecurrent, pagesize, out pagecount, out itemcount, out dt); result = JsonConvert.SerializeObject(dt); string resultOutput = "[{ \"ItemCount\":\"" + itemcount + "\",\"PageCount\":\"" + pagecount + "\"}]"; string jsonStr = "{\"result\":" + result + "," + "\"output\":" + resultOutput + "}"; result = "{\"result\":" + result + "," + "\"output\":" + resultOutput + "}"; return result; } static private string Insert(string sqlCmd) { string result = "[{ \"result\":\"0\"}]"; string sql; sql = InsertSql(sqlCmd); string errorMessage; SqlCall.ExecuteNonQuery(sql, out errorMessage); if (errorMessage == "") { result = "[{ \"result\":\"1\"}]"; } return result; } static private string Delete(string sqlCmd) { string result = "[{ \"result\":\"0\"}]"; string sql; sql = DeleteSql(sqlCmd); string errorMessage; SqlCall.ExecuteNonQuery(sql, out errorMessage); if (errorMessage == "") { result = "[{ \"result\":\"1\"}]"; } return result; } static private string Update(string sqlCmd) { string result = "[{ \"result\":\"0\"}]"; string sql; sql = UpdateSql(sqlCmd); if(sql.Length<1) return result; string errorMessage; SqlCall.ExecuteNonQuery(sql, out errorMessage); if (errorMessage == "") { result = "[{ \"result\":\"1\"}]"; } return result; } static private string InsertSql(string sqlCmd) { var itemSql = JsonConvert.DeserializeObject(sqlCmd); string sql = ""; string field=""; string value=""; foreach(var item in itemSql.fieldshow) { field = field + item + ","; } field = field.Remove(field.LastIndexOf(","), 1); field = "(" + field + ")"; foreach (var item in itemSql.values) { if(item is string) { if (cheackValueSpecialFormat(item.ToString())) { value = value + " "+item + " , "; } else { value = value + " '"+item + "' , "; } } else { value = value + item + ","; } } value = value.Remove(value.LastIndexOf(","), 1); value = "(" + value + ")"; sql = " INSERT INTO " + itemSql.tbname + field + " VALUES " + value; return sql; } static private string DeleteSql(string sqlCmd) { var item = JsonConvert.DeserializeObject(sqlCmd); string where; where = GetWhereString(item.Where, item.WhereTime); if (where.Length < 1) return ""; string sql; sql = "DELETE FROM " + item.tbname; if (where.Length > 1) { sql = sql + " where " + where; } return sql; } static private string UpdateSql(string sqlCmd) { var itemSql = JsonConvert.DeserializeObject(sqlCmd); string field = ""; if(itemSql.fieldshow.Count<1) return ""; if(itemSql.fieldshow.Count!= itemSql.values.Count) return ""; for (int i=0;i< itemSql.fieldshow.Count;i++) { if(itemSql.values[i] is string) { if (cheackValueSpecialFormat(itemSql.values[i].ToString())) { field = field + itemSql.fieldshow[i] + " = " + itemSql.values[i]+" , "; } else { field = field + itemSql.fieldshow[i] + " = '" + itemSql.values[i]+"' , "; } } else { field = field + itemSql.fieldshow[i] + " = " + itemSql.values[i]+" , "; } } field = field.Remove(field.LastIndexOf(","), 1); string where; where = GetWhereString(itemSql.Where, itemSql.WhereTime); if (where.Length < 1) return ""; string sql; sql = "UPDATE " + itemSql.tbname + " SET " + field; if (where.Length > 1) { sql = sql+ " where " + where; } return sql; } static private bool cheackValueSpecialFormat(string fieldValue) { bool isSpecialFormat = false; fieldValue = fieldValue.ToLower(); if (fieldValue.Contains("getdate")) { isSpecialFormat = true; } if (fieldValue.Contains("convert(")) { isSpecialFormat = true; } if (fieldValue.Contains("left(")) { isSpecialFormat = true; } if (fieldValue.Contains("rank()")) { isSpecialFormat = true; } if (fieldValue.Contains("case ")) { isSpecialFormat = true; } if (fieldValue.Contains("row_number ")) { isSpecialFormat = true; } return isSpecialFormat; } static private string SelectSql(string sqlCmd) { var item = JsonConvert.DeserializeObject