如何在Windows窗体应用程序中从数据库中添加值

时间:2019-05-31 07:14:17

标签: c#

我正在尝试将所有学生的课程价值相加,以得出平均值。这些值已保存到数据库中,但是当我尝试将这些值添加在一起并插入到文本框中时,会将两个值都插入到文本框中,而不是将这些值添加在一起。

            string output = "";
            output += (dr["Course 1"].ToString());
            output += (dr["Course 2"].ToString());
            txtbxaverage.Text = output;

        }

4 个答案:

答案 0 :(得分:2)

带字符串的运算符“ +”用于连接,而不是加法。简单起见:“ 3” +“ 4”!=“ 7”,“ 3” +“ 4” =“ 34”。

现在,如果要计算一系列字符串的总和,您可以做的是声明一个从0开始的变量,并将每个转换为int的字符串添加到该变量中。像这样:

int result = 0;
result += Convert.ToInt32(dr["Course 1"].ToString());
result += Convert.ToInt32(dr["Course 2"].ToString());
//And so on

另外,如果dr是一个数组,则可以使用for或foreach循环遍历它们,而不是对数组中的每个值都使用一行:

for (int i = 0; i < dr.length; i++)
{
    result += Convert.ToInt32(dr[i].ToString());
}

如果dr是整数或其他数字类型的数组,则无需使用ToString函数。改为这样做:

result += dr[i];

答案 1 :(得分:0)

将2个字符串加在一起时,会将它们串联在一起。

“ Hello” +“ _World” =“ hello_World”

您要

string output = "";
output += dr["Course 1"];
output += dr["Course 2"]);
txtbxaverage.Text = output.ToString();

将整数加在一起后,才调用“ ToString()”。

答案 2 :(得分:0)

我会这样

txtbaverage.Text = $"{decimal.Parse(dr["Course 1"])+decimal.Parse(dr["Course 2"])}";

字符串+字符串等效于

"1" + "1" == "11"

十进制+等于的十进制

1 + 1 == 2

所以您需要进行转换

decimal.Parse("1") + decimal.Parse("1") == 2

如果dr [“ Course 1”]是一个对象,则直接投射(十进制)dr [“ Course 1”]会将其转换为十进制,然后可以添加

答案 3 :(得分:0)

如评论中所述,对字符串使用'+'将它们连接起来,即“ Foo” +“ Bar”将为您提供“ FooBar”。根据您的情况,您需要执行的操作取决于dr[]数组中存储的类型。如果数组存储整数,则可以直接将其直接添加,如下所示:

string output = "";
int sum = dr["Course 1"] + dr["Course 2"];
output = sum.ToString();

如果数组存储的是float或double,则它是相同的,除了必须声明sum作为适当的类型。

如果数组存储字符串,则需要在进行求和之前解析它们,如下所示:

string output = "";
int sum = 0;
int value1, value2;
int.TryParse(dr["Course 1"], out value1);
int.TryParse(dr["Course 2"], out value2);
sum = value1 + value2;
output = sum.ToString();