C# 将datatable转换为JSON并逐行发布到PubSub

C# 将datatable转换为JSON并逐行发布到PubSub,c#,json,sql-server,google-cloud-pubsub,C#,Json,Sql Server,Google Cloud Pubsub,我的流程是从正在使用datatable的SQL Server数据库中获取数据,然后将其发布到PubSub,每行都有不同的消息。有人能帮我一下,给我建议一下做这件事的方法吗 我正在使用Newtonsoft.Json转换为Json 这是我与数据库的连接: public DataTable RequestDataDB() { SqlConnection database = new SqlConnection(DatabaseConn.DBCon

我的流程是从正在使用datatable的SQL Server数据库中获取数据,然后将其发布到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();

您的代码正在将datatable转换为json并发布。除了问题:为什么要逐行发布数据表之外,您还可以考虑通过数据表的行循环并单独发布数据表?没有比这更有效的方法了?给定您的DataTable,您希望JSON输出是什么样子?可能有效,也可能无效,如果不知道您所需的具体输出格式,我们将无法回答。
string jsonOutput = JsonConvert.SerializeObject(RequestDataDB, Formatting.Indented);