微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何用DataTable C#

如何解决如何用DataTable C#

如何用特殊字符之间的替换字符串 并且应该与列名和 msgtemplate 文件名匹配。 我在下面试过。但它重复相同的味精值。

DataTable dtResponsesOUTBox = objDataAccess.getoutBox();
dtResponsesOUTBox.Columns.Add("NewmsgTemplate",typeof(System.String));
DataTable dtrecords = dtResponsesOUTBox.copy();
foreach (DaTarow row1 in dtResponsesOUTBox.Rows)
{
  string Item = dtResponsesOUTBox.Rows[2]["Item"].ToString().Trim();
  string trandate = dtResponsesOUTBox.Rows[3]["trndate"].ToString().Trim();
  string result = Regex.Replace(strValue,"@@Item.*?@@",Item);
  result = Regex.Replace(result,"@@trndate.*?@@",trandate);
  row1["NewmsgTemplate"] = result;
}
dtrecords = dtResponsesOUTBox.copy();

输入: 项目交付日期 msgTemplate
笔记本电脑 12/2/2020 您的@@item@@ 交付地址为@@deLeverdate@@
书籍 10/2/2020 您的@@item@@ 是在@@deLeverdate@@ 交付的,
Abc 10/2/2020 您的@@item@@ 是在@@deLeverdate@@ 交付的,


预期输出

NewmsgTemplateColumn 谢谢您的笔记本电脑于 12/02/2020 交付 谢谢 您的书已于 10/02/2020 交付 谢谢您的 ABC 已于 10/02/2020 交付

解决方法

你的问题没有描述清楚,所以我猜你想要得到下表。

Item   | deleiverdate  |  msgTemplate                                   |  NewmsgTemplate
laptop |  12/2/2020    |  Your @@item@@ is deliver at @@deleverdate@@   |  Thank you Your laptop is deliver at 12/2/2020
books  |  10/2/2020    |  Your @@item@@ is deliver at @@deleverdate@@   |  Thank you Your books is deliver at 10/2/2020
Abc    |  10/2/2020    |  Your @@item@@ is deliver at @@deleverdate@@   |  Thank you Your Abc is deliver at 10/2/2020

我试图从你的代码中实现它:

string msgTemplate = "Your @@item@@ is deliver at @@deleverdate@@";

DataTable dtResponsesOUTBOX = new DataTable();
dtResponsesOUTBOX.Columns.Add("Item",typeof(System.String));
dtResponsesOUTBOX.Columns.Add("deleiverdate",typeof(System.String));
dtResponsesOUTBOX.Columns.Add("NewmsgTemplate",typeof(System.String));

dtResponsesOUTBOX.Rows.Add("laptop","12/2/2020");
dtResponsesOUTBOX.Rows.Add("books","10/2/2020");
dtResponsesOUTBOX.Rows.Add("Abc","10/2/2020");

foreach (DataRow row1 in dtResponsesOUTBOX.Rows)
{
    string Item = row1["Item"].ToString();
    string deleiverdate = row1["deleiverdate"].ToString();
    string newmsg = Regex.Replace(msgTemplate,"@@item@@",Item);
    newmsg = Regex.Replace(newmsg,"@@deleverdate@@",deleiverdate);
    row1["NewmsgTemplate"] = newmsg;
    Console.WriteLine("Thank you " + row1["NewmsgTemplate"]);
}

会有如下输出:

Thank you Your laptop is deliver at 12/2/2020
Thank you Your books is deliver at 10/2/2020
Thank you Your Abc is deliver at 10/2/2020

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。