<%@ WebHandler Language="C#" Class="save" Debug="true" %> using System; using System.Collections.Generic; using System.Web; using System.Collections; using System.Data; using eMIS; using eMIS.Data; using System.Web.Services; using System.Security.Cryptography; using Newtonsoft.Json.Linq; using Newtonsoft.Json; using System.IO; using System.Text; public class save : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string result = ""; try { DateTime n = DateTime.Now; DataManager dm = new DataManager(); eDbOperator dbo = dm.Operator; HttpContext.Current.Response.ContentType = "application/json"; HttpContext.Current.Response.ContentEncoding = Encoding.UTF8; Stream inputStream = HttpContext.Current.Request.InputStream; Encoding encoding = HttpContext.Current.Request.ContentEncoding; StreamReader streamReader = new StreamReader(inputStream, encoding); string source = streamReader.ReadToEnd(); DataTable dt1 = JsonHelper.DeserializeJsonToObject(source); string GUID = ""; string rwdh = ""; string userid = ""; string flag = ""; string oldzz = ""; DataTable dtreturn= dt1.Clone(); dbo.BeginTrans(); #region 处理 for (int i=0;i 0) { // 判断合同号是否正确 if (dthth.Select("hth='" + dttemp.Rows[0][1].ToString() + "'").Length > 0) { //dbo.ExecuteNonQuery("update GC_装置上传 set BDZM='" + BDZM + "',state='已上传并更新' where CODE_BAR='" + equcode + "'"); //dbo.ExecuteNonQuery("update SC_装置信息 set STATION_ID='" + BDZID + "' where CODE_BAR='" + equcode + "'"); dt1.Rows[i]["zt"] = "1"; } else { //dbo.ExecuteNonQuery("update GC_装置上传 set BDZM='" + BDZM + "',state='已上传但合同号不匹配' where CODE_BAR='" + equcode + "'"); //dbo.ExecuteNonQuery("update SC_装置信息 set STATION_ID='" + BDZID + "' where CODE_BAR='" + equcode + "'"); dt1.Rows[i]["zt"] = "2"; // dtreturn.Rows.Add(dt1.Rows[i]); } } //非法条码 else { //dbo.ExecuteNonQuery("update GC_装置上传 set state='非法条码' where CODE_BAR='" + equcode + "'"); dt1.Rows[i]["zt"] = "3"; // dtreturn.Rows.Add(dt1.Rows[i]); } } string returnjson = DataTable2Json(dt1); #endregion dbo.CommitTrans(); result=returnjson; } catch (Exception ee) { result= ee.Message; } context.Response.Write("["+result+"]"); context.Response.End(); } public bool IsReusable { get { return false; } } public static string DataTable2Json(DataTable dt) { StringBuilder jsonBuilder = new StringBuilder(); for (int i = 0; i < dt.Rows.Count; i++) { jsonBuilder.Append("{"); for (int j = 0; j < dt.Columns.Count; j++) { jsonBuilder.Append("\""); jsonBuilder.Append(dt.Columns[j].ColumnName); jsonBuilder.Append("\":\""); jsonBuilder.Append(dt.Rows[i][j].ToString()); jsonBuilder.Append("\","); } if (dt.Columns.Count > 0) { jsonBuilder.Remove(jsonBuilder.Length - 1, 1); } jsonBuilder.Append("},"); } if (dt.Rows.Count > 0) { jsonBuilder.Remove(jsonBuilder.Length - 1, 1); } return jsonBuilder.ToString(); } public class JsonHelper { /// /// 将对象序列化为JSON格式 /// /// 对象 /// json字符串 public static string SerializeObject(object o) { string json = JsonConvert.SerializeObject(o); return json; } /// /// 解析JSON字符串生成对象实体 /// /// 对象类型 /// json字符串(eg.{"ID":"112","Name":"石子儿"}) /// 对象实体 public static T DeserializeJsonToObject(string json) where T : class { JsonSerializer serializer = new JsonSerializer(); StringReader sr = new StringReader(json); object o = serializer.Deserialize(new JsonTextReader(sr), typeof(T)); T t = o as T; return t; } /// /// 解析JSON数组生成对象实体集合 /// /// 对象类型 /// json数组字符串(eg.[{"ID":"112","Name":"石子儿"}]) /// 对象实体集合 public static List DeserializeJsonToList(string json) where T : class { JsonSerializer serializer = new JsonSerializer(); StringReader sr = new StringReader(json); object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List)); List list = o as List; return list; } /// /// 反序列化JSON到给定的匿名对象. /// /// 匿名对象类型 /// json字符串 /// 匿名对象 /// 匿名对象 public static T DeserializeAnonymousType(string json, T anonymousTypeObject) { T t = JsonConvert.DeserializeAnonymousType(json, anonymousTypeObject); return t; } } }