当前位置: 首页 > 编程语言 > C#

插入存储在数据库中的字符串

时间:2023-04-10 20:50:33 C#

插入存储在数据库中的字符串我们想要维护从ASP.NETweb应用程序发送到数据库的电子邮件。这个想法是将电子邮件的格式存储在数据库中。问题是电子邮件应包含订单特定信息,例如:感谢您的订单JohnSmith,您的订单已收到1234我想要实现的是我在数据库列值中逐字使用字符串,它将被存储此处:感谢您的订单{o.customer},您的订单已收到{o.id}我很好奇是否可以对其值已经在格式化字符串中的字符串进行插值。如果我尝试使用String.Format(dbEmailString),它会抛出异常:mscorlib.dll中出现“System.FormatException”类型的异常,但未在用户代码中处理附加信息:输入字符串格式不正确。字符串插值是一个编译时特性。您可以使用常规String.Format执行您想要的操作:varformattedEmail=String.Format("感谢您的订单{0},您的订单{1}已收到",o.customer,o.id);如果你需要用值替换各种占位符,也许你需要寻找一个更动态的模板系统,一个非常基本的模板系统可以用String.Replace完成。最重要的是,您不能通过这种方式直接从存储的字符串中引用代码中的变量——您需要在运行时以某种方式处理字符串。在C#6中,内插字符串表达式看起来像包含表达式的模板字符串。它看起来像一个String.Format()占位符,但它不是索引,而是花括号内的表达式。看起来C#6中的String.Format()是一种语法糖,编译器会在幕后处理String.Format()之类的事情。例如,要在VS2015的OP中显示表达式:classProgram{staticvoidMain(string[]args){dynamicorder=new{customer="Robert",id=123};打印字符串(订单);}staticvoidPrintString(dynamico){varexp1=$"感谢您的订单{o.customer}";varexp2=$"您的订单{o.id}已收到";控制台.WriteLine(exp1);安慰。写行(exp2);}}输出是:ThankyouforyourorderRobertYourorderhasbeenreceived123您可以从数据库中检索格式化的表达式并在上面的示例中添加一个“$”。在VS2013下,您可以将新编译器作为nuget包安装到您的项目中:Install-PackageMicrosoft.Net.Compilers我认为您指的是C#6.0的新功能:https://msdn.microsoft.com/en-us/library/dn961160.aspx我只读过它,还没有使用它的经验。但它必须与customer和id变量一起使用,而且我没有任何迹象表明它与对象的属性一起使用。字符串客户=o.客户;intid=o.id;stringmsg=$"感谢您的订单{customer},您的订单{id}已收到";给你正确的结果。(VS2015和.Net4.6可用。)stringmsg=$"感谢您的订单{o.customer},您的订单{o.id}已收到";`它可能有效,我不知道。以上就是C#学习教程:插值存入数据库的全部内容。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处: