我正在为按部分显示数据的网站进行ui编码测试:
例如:
第1部分:显示链接1,链接2,链接3
第2部分:显示链接3,链接5,链接6
我想验证网站是否如上正确显示数据,因此我决定将原始数据添加到具有以下格式的csv文件中:(注意:这只是一个示例,每个链接的内容都与其他不同)< / p>
第1节,链接1
第1节,链接2
第1节,链接3
第2节,链接4
第2节,链接5
第3节,链接6
然后,我将csv文件中的数据加载到datatable中,并将datatable中的每一行与网站中的实际数据进行比较。
这很完美,直到我发现某些链接包含一些动态日期(某些包含今天的日期,一些包含以前的日期,它们经常更改)
我在考虑将一些变量添加到csv文件并在其中插入日期的解决方案。
例如,我将变量添加到csv中,如下所示:
第1节,链接1 {0}
第1节,链接2 {1}
第1节,链接3 {2}
第2节,链接4
第2节,链接5
第3节,链接6
用实际日期替换它们,但我不知道如何。
在我用来将csv文件中的数据加载到datatable中的代码下面:
public System.Data.DataTable ConvertCSVtoDataTable(string pathFile)
{
System.Data.DataTable dt = new System.Data.DataTable();
using (StreamReader sr = new StreamReader(pathFile))
{
string[] headers = sr.ReadLine().Split(',');
foreach (string header in headers)
{
dt.Columns.Add(header);
}
while (!sr.EndOfStream)
{
string[] rows = sr.ReadLine().Split(',');
System.Data.DataRow dr = dt.NewRow();
for (int i = 0; i < headers.Length; i++)
{
dr[i] = rows[i];
}
if (rows.Length != headers.Length)
{
for (int i = headers.Length; i < rows.Length; i++)
{
dr[headers.Length - 1] = dr[headers.Length - 1] + "," + rows[i];
}
}
dt.Rows.Add(dr);
}
}
return dt;
}
DataTable table = ConvertCSVtoDataTable(projectPath);
请帮助我。谢谢
答案 0 :(得分:0)
您可以将包含dr[i] = rows[i];
的循环修改为。
int drIndex = 0;
for (int i = 0; i < headers.Length; i++)
{
dr[drIndex] = rows[i];
drIndex++;
if (i == indexForInsertingTheDate)
{
dr[drIndex] = theDateToBeInserted;
drIndex++;
}
}
或者,您可以将循环体从简单的dr[i] = rows[i];
更改为:
string field = rows[i];
if (field.StartsWith("this is test "))
{
field += theDateToBeInserted;
}
dr[i] = field;
该问题未指定要使用的日期。如果需要今天的日期,则可以将theDateToBeInserted
设置为DateTime.Now.ToString("mm/dd/yyyy")
。