在 C# 中将请求正文转换为数据表或数据集
Convert request body to datatable or dataset in C#
我正在制作一个接受请求正文的 azure 函数。使用以下格式。
"10","名称","112","50012","Activity","08/02/2021","3:20","3:10"," “
“10”,“名称”,“”,“”,“休息”,“08/02/2021”,“-”,“0:11”,“休息”
"10","姓名","112","50012","Activity","08/02/2021","2:09","2:09",""
第一对字符串是工号,第二对是姓名,第三对是客户id,第四对是activityid,第五对是activity,第六对是日期,第 7 位是原始工作小时数,第 8 位是计算的工作小时数,最后表示是否休息。
总之每行有9组字符串,不知道有多少行。现在我想将其转换为数据表,然后再转换为数据集。到目前为止,我只能这样读正文。
using(var reader = new StreamReader(req.Body))
{
var ResponseBody = reader.ReadToEnd();
return Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK));
}
希望你能帮助我。提前致谢。
我建议你一个示例方法,你可以将其作为解决实际问题的参考。
所以你必须逐行读取数据并拆分数据。
DataTable dt = new DataTable();
string[] columns = [];//column names as you have mentioned in your data there are no columns
foreach (string column in columns)
{
dt.Columns.Add(column);
}
using (StreamReader reader = new StreamReader(strFilePath))
{
while (reader.EndOfStream == false)
{
string[] rows = reader.ReadLine().Split(',');
DataRow dr = dt.NewRow();
for (int i = 0; i < columns.Length; i++)
{
dr[i] = rows[i];
}
dt.Rows.Add(dr);
}
}
假设:我假设您在值之间没有逗号
我正在制作一个接受请求正文的 azure 函数。使用以下格式。
"10","名称","112","50012","Activity","08/02/2021","3:20","3:10"," “ “10”,“名称”,“”,“”,“休息”,“08/02/2021”,“-”,“0:11”,“休息” "10","姓名","112","50012","Activity","08/02/2021","2:09","2:09",""
第一对字符串是工号,第二对是姓名,第三对是客户id,第四对是activityid,第五对是activity,第六对是日期,第 7 位是原始工作小时数,第 8 位是计算的工作小时数,最后表示是否休息。
总之每行有9组字符串,不知道有多少行。现在我想将其转换为数据表,然后再转换为数据集。到目前为止,我只能这样读正文。
using(var reader = new StreamReader(req.Body))
{
var ResponseBody = reader.ReadToEnd();
return Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK));
}
希望你能帮助我。提前致谢。
我建议你一个示例方法,你可以将其作为解决实际问题的参考。
所以你必须逐行读取数据并拆分数据。
DataTable dt = new DataTable();
string[] columns = [];//column names as you have mentioned in your data there are no columns
foreach (string column in columns)
{
dt.Columns.Add(column);
}
using (StreamReader reader = new StreamReader(strFilePath))
{
while (reader.EndOfStream == false)
{
string[] rows = reader.ReadLine().Split(',');
DataRow dr = dt.NewRow();
for (int i = 0; i < columns.Length; i++)
{
dr[i] = rows[i];
}
dt.Rows.Add(dr);
}
}
假设:我假设您在值之间没有逗号