将数据表转换为 JSON 并逐行发布到 PubSub
Convert datatable to JSON and publish to PubSub row by row
我的流程是从 SQL 服务器数据库(我正在使用数据表)获取数据,然后将其发布到 PubSub(每行有不同的消息)。有人可以帮助我并建议我这样做吗?
我正在使用 Newtonsoft.Json 转换为 JSON。
这是我与数据库的连接:
public DataTable RequestDataDB()
{
SqlConnection database = new SqlConnection(DatabaseConn.DBConnectionString);
database.Open();
SqlCommand databaseCmd = new SqlCommand("Request_PubData", database);
SqlDataAdapter da = new SqlDataAdapter(databaseCmd);
da.Fill(dt);
database.Close();
return dt;
}
这就是我调用它并转换为 JSON 并发布它的方式。
Console.WriteLine("Data to be Published Total : " + totalRows);
string jsonOutput = JsonConvert.SerializeObject(RequestDataDB, Formatting.Indented);
string messageId = await publisher.PublishAsync(jsonOutput);
Console.WriteLine(jsonOutput);
await publisher.ShutdownAsync(TimeSpan.FromSeconds(15));
感谢您的帮助。
非常感谢您提供的所有提示和答案。我非常感激。
实际上,需求是一个对象一个对象发布{} {}
,而不是顺序[ {}, {} ]
。
所以这是解决方案。非常感谢你们。
foreach (DataRow DataDBRow in RequestDataDB.Rows)
{
string json = new JObject(
RequestDataDB.Columns.Cast<DataColumn>()
.Select(DataDBColumn => new JProperty(DataDBColumn.ColumnName, JToken.FromObject(DataDBRow[DataDBColumn])))
).ToString(Formatting.None);
Console.WriteLine(json);
Console.WriteLine();
string messageId = await publisher.PublishAsync(json);
}
await publisher.ShutdownAsync(TimeSpan.FromSeconds(15));
//databaseConn.Close();
Console.ReadLine();
前一个代码:
string jsonOutput = JsonConvert.SerializeObject(RequestDataDB, Formatting.Indented);
我的流程是从 SQL 服务器数据库(我正在使用数据表)获取数据,然后将其发布到 PubSub(每行有不同的消息)。有人可以帮助我并建议我这样做吗?
我正在使用 Newtonsoft.Json 转换为 JSON。
这是我与数据库的连接:
public DataTable RequestDataDB()
{
SqlConnection database = new SqlConnection(DatabaseConn.DBConnectionString);
database.Open();
SqlCommand databaseCmd = new SqlCommand("Request_PubData", database);
SqlDataAdapter da = new SqlDataAdapter(databaseCmd);
da.Fill(dt);
database.Close();
return dt;
}
这就是我调用它并转换为 JSON 并发布它的方式。
Console.WriteLine("Data to be Published Total : " + totalRows);
string jsonOutput = JsonConvert.SerializeObject(RequestDataDB, Formatting.Indented);
string messageId = await publisher.PublishAsync(jsonOutput);
Console.WriteLine(jsonOutput);
await publisher.ShutdownAsync(TimeSpan.FromSeconds(15));
感谢您的帮助。
非常感谢您提供的所有提示和答案。我非常感激。
实际上,需求是一个对象一个对象发布{} {}
,而不是顺序[ {}, {} ]
。
所以这是解决方案。非常感谢你们。
foreach (DataRow DataDBRow in RequestDataDB.Rows)
{
string json = new JObject(
RequestDataDB.Columns.Cast<DataColumn>()
.Select(DataDBColumn => new JProperty(DataDBColumn.ColumnName, JToken.FromObject(DataDBRow[DataDBColumn])))
).ToString(Formatting.None);
Console.WriteLine(json);
Console.WriteLine();
string messageId = await publisher.PublishAsync(json);
}
await publisher.ShutdownAsync(TimeSpan.FromSeconds(15));
//databaseConn.Close();
Console.ReadLine();
前一个代码:
string jsonOutput = JsonConvert.SerializeObject(RequestDataDB, Formatting.Indented);