csv 在C#中将请求正文转换为数据表或数据集

rlcwz9us  于 2023-01-28  发布在  C#
关注(0)|答案(1)|浏览(140)

我正在创建一个azure函数,它接受一个请求主体,格式如下。
“10”、“名称”、“112”、“50012”、“活动”、“2021年2月8日”、“3:20”、“3:10”、“名称”、"、“休息”、“2021年2月8日”、”-“、“0:11”、“休息”、“10”、“名称”、“112”、“50012”、“活动”、“2021年2月8日”、“2:09”、“2:09”、”
第一对字符串是员工ID,第二对是姓名,第三对是客户ID,第四对是活动ID,第五对是活动,第六对是日期,第七对是原始工作小时数,第八对是计算的工作小时数,最后一对表示是否为休息。
简短的说,每行有9组字符串,不知道有多少行。现在我想把它转换成一个数据表,然后再转换成一个数据集。到目前为止,我只能像这样读取主体。

using(var reader = new StreamReader(req.Body))
        {
            var ResponseBody = reader.ReadToEnd();

            return Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK));
        }

希望你能帮我。先谢了。

qpgpyjmq

qpgpyjmq1#

我向你建议一个范例方法,你可以以此作为解决实际问题的参考。
所以你必须一行一行地读取数据并拆分数据。

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);
    }
}

假设:我假设值之间没有逗号

相关问题