我想通过SqlDataReader用新值替换字符串,但是DataReader返回2个值2和4,替换工作正常,将字符串替换为值2,但不替换为4值。
首先,我从一个类创建一个列表,然后将DataReader的值添加到列表中:
listaTan.Add(new ListaTan { Tanques = dr["Num"].ToString() })
然后我使用for循环替换字符串:
for (int i = 0; i < listaTan.Count; i++)
{
body = body.Replace("#Num#", listaTan[i].Tanques);
}
但是请始终替换第一个值,而不要替换第二个值。
目的是发送具有两个值的电子邮件,即发送2封电子邮件,其中1封电子邮件的值为2,另一封电子邮件的值为4。
现在,我发送了2封电子邮件,但始终带有值2,其他值始终为否,因为替换无法正常工作。
谢谢
答案 0 :(得分:0)
您可以简单地执行以下操作吗?
DataTable dt = new DataTable();
dt.Load(dataReader);// i'm not sure, Load() or LoadData()
foreach (DataRow row in dt.Rows)
{
row[fieldname] = row[fieldname].Replace("#Num#")
}
就像直接修改数据表一样,而无需创建新列表。