更新
我已经想通了。请查看下面的答案。
我试图创建一个代表数据库表中一行的JSON字符串,以在HTTP响应中返回。似乎Json.NET是一个很好的工具。但是,我不确定如何在读取数据库时构建JSON字符串。
这个问题由烦人的注释/******** ********/
标记。
// connect to DB
theSqlConnection.Open(); // open the connection
SqlDataReader reader = sqlCommand.ExecuteReader();
if (reader.HasRows) {
while(reader.Read()) {
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
using (JsonWriter jsonWriter = new JsonTextWriter(sw)) {
// read columns from the current row and build this JsonWriter
jsonWriter.WriteStartObject();
jsonWriter.WritePropertyName("FirstName");
// I need to read the value from the database
/******** I can't just say reader[i] to get the ith column. How would I loop here to get all columns? ********/
jsonWriter.WriteValue(... ? ...);
jsonWriter.WritePropertyName("LastName");
jsonWriter.WriteValue(... ? ...);
jsonWriter.WritePropertyName("Email");
jsonWriter.WriteValue(... ? ...);
// etc...
jsonWriter.WriteEndObject();
}
}
}
问题在于我不知道如何从
SqlReader
中读取每行的每个列,以便我可以调用WriteValue
并提供正确的信息并将其附加到正确的列名。因此,如果一行看起来像这样...| FirstName | LastName | Email |
我应该如何为每一行创建一个 JsonWriter
,使其包含行的所有列名和每个列中相应的值,然后使用该 JsonWriter
构建一个准备通过 HTTP 响应返回的 JSON 字符串?
如果需要我进行澄清,请告诉我。