日期:2014-05-17  浏览次数:20468 次

.NET C# 输入字符串的格式不正确。
类的方法  
 public bool SaveTeacher(string strID, string strTime, string strLesson, int iPeriod, float fScale, float fSalary)
  {
  string strComm = @"insert into [Teacher](ID,Time,Lesson,Period,Scale,Salary) 
  values(@ID,@Time,@Lesson,@Period,@Scale,@Salary)";

  SqlConnection sqlConn = this.GetSqlServerConn(); //调用GetSqlServerConn()方法获得数据库连接

  SqlCommand sqlComm = new SqlCommand(); //生成数据库命令操作对象
  try
  {

  sqlComm.CommandText = strComm; //指定要执行的SQL命令

  sqlComm.Connection = sqlConn; //指定要使用的SQL连接

  sqlComm.Parameters.AddWithValue("@ID", strID); //为SQL命令的参数赋值
  sqlComm.Parameters.AddWithValue("@Time", strTime);
  sqlComm.Parameters.AddWithValue("@Lesson", strLesson);
  sqlComm.Parameters.AddWithValue("@Period", iPeriod);
  sqlComm.Parameters.AddWithValue("@Scale", fScale);
  sqlComm.Parameters.AddWithValue("@Salary", fSalary);
  sqlComm.ExecuteNonQuery(); //执行SQL命令
  return true;
  }
  catch (Exception ex)
  {
  return false;
  }
  finally
  {
  this.CloseSqlServerConn(sqlConn); //调用方法关闭数据库
  }
  }


程序里
  bool bResult = dc.SaveTeacher(txtID1.Text.Trim(), ddlTime.SelectedItem.Text.ToString(), ddlLesson.SelectedItem.Text.ToString(),int.Parse(ddlPeriod.SelectedItem.Text.ToString()), float.Parse(ddlScale.SelectedItem.Text.ToString()),float.Parse(lblSalary.Text));


调试结果
输入字符串的格式不正确。 错误就在这一行。但我没看出来哪不对了。。求指导

------解决方案--------------------
stacktrack里面看下到底是哪个强制转换出错了 不然你这么多参数谁知道是哪个
------解决方案--------------------
肯定是不符合规则 Parse转换错误,仔细检查每一个 Parse后的值
------解决方案--------------------
估计是你得time得格式不正确,把time换成'2001-12-12'试试,确认一下
------解决方案--------------------
int.Parse(ddlPeriod.SelectedItem.Text.Trim())
------解决方案--------------------
float.Parse(ddlScale.SelectedItem.Text.ToString()),float.Parse(lblSalary.Text)
这两个其中一个出错