【发布时间】:2021-06-07 23:46:09
【问题描述】:
我正在调用一个输出 JSON 有效负载的 Web 服务,JSON 字符串具有 productName、packageId、webReferenceId。调用 Web 服务时,productName 作为查询字符串传递。我能够传递查询字符串并检索具有 productName、packageId、webReferenceId 的 JSON 有效负载,如下所示。
JSON:
{
"product": [
{
"product": "adc",
"pkgid": 1124245,
"wrfid": 5387612
}
]
}
使用下面的C# 代码检索JSON 有效负载。
C#:
var jsondata = new WebClient();
string prdcode = jsondata.DownloadString(new Uri(url));
JavaScriptSerializer jss = new JavaScriptSerializer
{
MaxJsonLength = Int32.MaxValue
};
Rootobject ro = jss.Deserialize<Rootobject>(prdcode);
现在,我必须使用来自 JSON 输出的 packageId、webReferenceId 更新 SQL 表。我正在将JSON 结果读入DataReader,但不确定如何将UPDATE 读入SQL 表。
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("packageId", typeof(int)));
dt.Columns.Add(new DataColumn("webReferenceId", typeof(int)));
DataRow dr = dt.NewRow();
foreach (var product in ro.data)
{
dr["packageId"] = product.pkgid;
dr["webReferenceId"] = product.wrfid;
}
【问题讨论】:
-
您使用什么库来访问 SQL 服务器?实体框架? LINQ2SQL?普通的旧 System.Data.SqlClient?
-
嗨@Corey,普通的旧System.Data.SqlClient。
-
喜欢硬着头皮做事,对吧? :) 好吧...让我玩一下 BulkCopy 之类的东西,看看我能做什么。
-
出于兴趣...您使用 SqlClient 而不是 ORM 的任何原因?一直与
DataTables 打交道很烦人,你不觉得吗? -
嗨@Corey,这是我支持的遗留代码。会有很多重写。这是针对供应商应用程序的,他们很快就会升级并迁移到云端。
标签: c# sql json sqldatareader