将数据表转换为 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);