Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在数据行C#中添加多个值?_C#_Asp.net_.net_Datarow - Fatal编程技术网

如何在数据行C#中添加多个值?

如何在数据行C#中添加多个值?,c#,asp.net,.net,datarow,C#,Asp.net,.net,Datarow,我尝试在datarow中显示多个值我尝试了不同的方法,但得到的错误代码是 crow["BaseCostHighWay * POF * PTF * WCF"] = BaseCostScoreHW + POF + PTF + WCF; 我试图在数据行中显示“BaseCostScoreHW”“POF”“PTF”“WCF”,如果在它们之间使用“+”进行尝试,则会导致此处出现错误 希望得到你的建议,提前谢谢 编辑 应该看起来像 BaseCostHighWay * POF * PTF * WCF 2.

我尝试在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
你试过DataColumn吗?

根据变量“BaseCost.”、“PDF”和“PTF”等的类型,您可能会遇到各种错误。所以,对于初学者来说,在提问时,总是说你会遇到什么错误,否则我们就得拿一个水晶球来猜

另一件事是,你所说的“+”是什么意思?你是想把数字加起来,还是想把文字粘在一起

根据典型问题猜测,最有可能的情况是您想要构建一个包含多个“值”的字符串,并且您的变量是混合类型的。尝试在彼此之后添加“.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 text = string.Format("{0},{1},{2},{3}", BaseCostScoreHW, POF, PTF, WCF);
crow["BaseCostHighWay"] = text;
// text = 1.1,2.2,3.3,4.4

请注意,这里没有不明确的“+”。你只要说“格式”、“喜欢这个模板”和“这里有值”

不应该是单独的列吗?换言之,`crow[“BaseCostHighWay”]=BaseCostScoreHW;乌鸦[“POF”]=POF;crow[“PTF”]=PTF;乌鸦[“WCF”]=WCF;“或者类似的东西。你显然不能这样做。你能提供更多的代码吗(crow、BaseCostScoreHW、POF、PTF和WCF是什么,它们的类型等等)?是您试图添加或修改的数据表中的一行吗?@Tim it这些不是具有变量的行value@vooBaseCostScoreHW、POF、PTF和WCF这是双变量类型,具有2.3等值,因此我已根据您的示例更新了格式和值。请查看。啊,当然还有您名为BaseCostHighWay*POF*PTF*WCF”必须是字符串类型。如果您将其键入'number'/'double'/etc,则它将不接受构造的文本值。请确保列'BaseCostHighWay*POF*PTF*WCF'具有类似字符串的数据类型。是否有其他选项,因为我有datatyp double列:(您有很多选择。最基本的选择是将该列的类型更改为字符串(在查询/应用程序中!而不是在数据库的实际表中!)。或者,您可以手动将新的“字符串”列添加到数据表中,并使用它来代替“双精度”列(请参阅)。请注意,此新列将需要一个新的、唯一的名称,与其他列不同。因此,如果“BaseCostHighWay”是双精度的,则该新列必须具有不同的名称。但是,请记住,“name”只是一个标识符。显示的是列的标题。
crow["BaseCostHighWay * POF * PTF * WCF"] = 
    String.Format("{0},{1},{2},{3}", BaseCostScoreHW, POF, PTF, WCF);