C#WebForm - 添加学生标记的平均值,在Web表单中打印结果,然后将其存储在数据库中

时间:2013-07-24 17:09:00

标签: c#

protected void btnView_Click(object sender, EventArgs e)
{
      int StudentAdmissionNo  = Convert.ToInt32(txtAdmissionNo.Text);
      string StudentName = txtStudentName.Text;
      DateTime DateOfBirth = Convert.ToDateTime(txtDOB.Text);
      string Gender = txtGender.Text;
      string Standard = txtstandard.Text;
      string Section = txtSection.Text;
      int Telugu = Convert.ToInt32(txtTelugu.Text);
      int English = Convert.ToInt32(txtEnglish.Text);
      int Mathematics = Convert.ToInt32(txtMathematics.Text);
      //int Total = Convert.ToInt32(lblTot.Text);
      //double Average = Convert.ToDouble(lblAve.Text);
      string Result = lblRes.Text;

      lblTot.Text = (txtTelugu.Text + txtEnglish.Text + txtMathematics.Text); # Total in coming if i enter the 45 65 65 = its coming 456565 like i did wrong?

      lblAve.Text = ((lblTot.Text) / 3.00); //This also gives an error
}

在这段代码中,我有一个来自lblTot =的错误来添加标记,它就像打印我输入的数字一样,平均也没有用。

4 个答案:

答案 0 :(得分:1)

您正在连接文本。当您对文本/字符串使用+时,它充当连接运算符。

首先需要将文本转换为Integer以进行算术运算。

使用 Convert.ToInt32(输入);

使用以下行替换代码应该修复它。

lblTot.Text = (Convert.ToInt32(txtTelugu.Text) + Convert.ToInt32(txtEnglish.Text) + Convert.ToInt32(txtMathematics.Text)).ToString();

lblAve.Text = ((Convert.ToInt32(lblTot.Text)) / 3.00).ToString(); 

更新

我刚刚注意到你已经在这里为整数分配了所需的值:

  int Telugu = Convert.ToInt32(txtTelugu.Text);
  int English = Convert.ToInt32(txtEnglish.Text);
  int Mathematics = Convert.ToInt32(txtMathematics.Text);

哪个是正确的,您只需要添加这些变量,例如:

int total = Telugu + English + Mathematics;
lblTot.Text = total.ToString();

然后,对于平均值,只需使用我们刚刚赋值的total变量:

lblAve.Text = Convert.ToString(Convert.ToDouble(total / 3.00)); // convert the average to double as you may get values with decimal point. And then convert it back to string in order to assign it to a Label control.

答案 1 :(得分:0)

如果我对你要做的事情的假设是正确的,你的代码应该是这样的。

decimal total = Teluga + English + Mathematics;
decimal average = (Teluga + English + Mathematics) / 3.00;
lblTot.Text = total.ToString();
lblAve.Text = average.ToString();

您正在尝试使用字符串来执行数学运算,但这不起作用。

此外,通常是

int x = Int32.TryParse(txtEnglish.Text) 

是将字符串转换为整数的更好方法

答案 2 :(得分:0)

你的两个问题的根源是textbox.Text属性是string

在你的第一个问题中,你正在连接字符串,这就是为什么它会给你456565。

在第二个问题中,您正尝试对字符串和数字执行算术运算。

通过声明Int32变量占位符并使用string上的TryParse方法将字符串转换为数字,如下所示:

Int32 txtTeluguResult;
Int32.TryParse(txtTelugu.Text, txtTeluguResult);

另请注意,如果TryParse无法成功解析文本输入,则会为结果变量输入0。您可能希望使用Convert.ToInt32(),如果失败则抛出FormatException,具体取决于您想要的行为。

答案 3 :(得分:0)

lblTot.Text = (txtTelugu.Text + txtEnglish.Text + txtMathematics.Text); # Total in coming if i enter the 45 65 65 = its coming 456565 like i did wrong?

lblAve.Text = ((lblTot.Text) / 3.00); this also giving error?

您使用的字符串变量不是int或real或decimal

做类似

的事情
lblTot.Text = (((int)txtTelugu.Text + (int)txtEnglish.Text + (int)txtMathematics.Text)).ToString();    
lblAve.Text = (((int)(lblTot.Text) / 3.00)).ToString(); this also giving error?