我试图在datarow中显示多个值,我尝试了不同的方法但是我的代码出错了,
crow["BaseCostHighWay * POF * PTF * WCF"] = BaseCostScoreHW + POF + PTF + WCF;
我试图在我的数据行中显示“BaseCostScoreHW”“POF”“PTF”“WCF”如果我在它们之间尝试“+”,导致这个地方出错
希望提前感谢您的建议
编辑
应该看起来像
BaseCostHighWay * POF * PTF * WCF
2.5,1.6,8.1,0.9
答案 0 :(得分:1)
根据变量类型'BaseCost ..','PDF','PTF'等,您可能会遇到各种错误。所以,对于初学者来说,当他们提出要求时,总是说出错误,否则我们不得不采取结晶球并猜测。
另一件事是,“+”是什么意思?你想把这些数字加起来,还是想把文字粘在一起?
从典型问题中猜测,最可能的是你想在内部构建一个包含多个'values'的字符串,而你的变量是混合类型的。尝试相互添加“.ToString()”并检查错误是否再次发生。
string text = BaseCostScoreHW.ToString() + POF.ToString() + PTF.ToString() + WCF.ToString();
crow["BaseCostHighWay"] = text;
// text = 1.12.23.34.4
这有点冗长。如果你真的想使用'+'运算符,只需确保第一个值是一个字符串:
string text1 = BaseCostScoreHW.ToString() + POF + PTF + WCF;
string text2 = string.Empty + BaseCostScoreHW + POF + PTF + WCF;
string text3 = "" + BaseCostScoreHW + POF + PTF + WCF;
// text1/2/3 = 1.12.23.34.4
这三行具有相同的效果。
但是,即使它有效,结果也不会很好,因为它会紧紧粘合所有东西。您可以在表达式中添加更多字符串和字符:
string text = "" + BaseCostScoreHW + "," + POF + "," + ...
但是......那几乎不可能。格式化一些文本的更好方法是使用.. string.format
:
string text = string.Format("{0},{1},{2},{3}", BaseCostScoreHW, POF, PTF, WCF);
crow["BaseCostHighWay"] = text;
// text = 1.1,2.2,3.3,4.4
请注意,这里没有含糊不清的“+”。你只需说“格式”和“喜欢这个模板”和“这里是值”。
答案 1 :(得分:0)
你试过DataColumn吗? DataColumn Class
答案 2 :(得分:0)
crow["BaseCostHighWay * POF * PTF * WCF"] =
String.Format("{0},{1},{2},{3}", BaseCostScoreHW, POF, PTF, WCF);