61,655
社区成员




protected void Page_Load(object sender, EventArgs e)
{
string s="{ \"people\": [ { \"firstName\": \"Brett\", \"lastName\":\"McLaughlin\", \"email\": \"aaaa\" }, { \"firstName\": \"Jason\", \"lastName\":\"Hunter\", \"email\": \"bbbb\"},{ \"firstName\": \"Elliotte\", \"lastName\":\"Harold\", \"email\": \"cccc\" }]}";
g1.DataSource = JsonToDataTable(s);
g1.DataBind();
}
/// <summary>
/// 根据Json返回DateTable,JSON数据格式如:
/// {table:[{column1:1,column2:2,column3:3},{column1:1,column2:2,column3:3}]}
/// </summary>
/// <param name="strJson">Json字符串</param>
/// <returns></returns>
public static DataTable JsonToDataTable(string strJson)
{
//取出表名
var rg = new Regex(@"(?<={)[^:]+(?=:\[)", RegexOptions.IgnoreCase);
string strName = rg.Match(strJson).Value;
DataTable tb = null;
//去除表名
strJson = strJson.Substring(strJson.IndexOf("[") + 1);
strJson = strJson.Substring(0, strJson.IndexOf("]"));
//获取数据
rg = new Regex(@"(?<={)[^}]+(?=})");
MatchCollection mc = rg.Matches(strJson);
for (int i = 0; i < mc.Count; i++)
{
string strRow = mc[i].Value;
string[] strRows = strRow.Split(',');
//创建表
if (tb == null)
{
tb = new DataTable();
tb.TableName = strName;
foreach (string str in strRows)
{
var dc = new DataColumn();
string[] strCell = str.Split(':');
dc.ColumnName = strCell[0];
tb.Columns.Add(dc);
}
tb.AcceptChanges();
}
//增加内容
DataRow dr = tb.NewRow();
for (int r = 0; r < strRows.Length; r++)
{
dr[r] = strRows[r].Split(':')[1].Trim().Replace(",", ",").Replace(":", ":").Replace("\"", "");
}
tb.Rows.Add(dr);
tb.AcceptChanges();
}
return tb;
}
using System;
using System.Collections;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
/// <summary>
///WebService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {
public WebService () {
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}
[WebMethod]
public System.Data.DataTable GetData(string id) {
string sql = "select * from [工序指标配置表$] where 工序编码='"+id+"'";
return dosoft.DAL.DbHelperSQL.GetTable(sql);
}
[WebMethod]
public void UpdateData(System.Data.DataTable dt)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
string id = dt.Rows[i]["唯一序号"].ToString();
string result = dt.Rows[i]["检测结果"].ToString();
string sql = "update [工序指标配置表$] set 检测结果='"+result+"' where 唯一序号="+id;
dosoft.DAL.DbHelperSQL.ExecuteSql(sql);
}
}
}
protected void b1_click(object o, EventArgs e)
{
test.WebService x = new test.WebService();
DataTable dt = x.GetData("30201");
GridView1.DataSource = dt;
GridView1.DataBind();
}
protected void b2_click(object o, EventArgs e)
{
test.WebService x = new test.WebService();
DataTable dt = x.GetData("30201");
for (int i = 0; i < GridView1.Rows.Count; i++)
{
string result = (GridView1.Rows[i].FindControl("t1") as TextBox).Text;
dt.Rows[i]["检测结果"] = result;
}
x.UpdateData(dt);
}