我在程序里构建了这样一个字符串,如下:
string InsertPlanSql="Insert into Plans (ClassId,CourseId,TeacherId,BeginWeek,EndWeek,CourseAllCount,CoursePerWeekCount,CoursePerWeekTimes,IsOdd,IsEven,Property,FixTime,FixClassRoom,MergeClassId,IsEstablish,StuCount) values ("+this.AssignClassID[0].ToString()+","+this.CourseID.ToString()+","+this.TeacherID.ToString()+","+this.Begin_Week.ToString()+","+this.End_Week.ToString()+","+Convert.ToString(this.CountPerWeek*(this.End_Week-this.Begin_Week+1))+","+this.CountPerWeek.ToString()+","+this.TimesPerWeek.ToString()+","+(int.Parse(this.Is_Odd.ToString())).ToString()+","+(int.Parse(this.Is_Even.ToString())).ToString()+",'"+this.CourseProperty+"','"+this.FixTime+"',"+this.FixClassRoom+","+MergeId.ToString()+",0,"+this.StuCount.ToString()+")";
程序执行到这里的时候出现异常,提示如下:
未处理的“System.FormatException”类型的异常出现在 mscorlib.dll 中。其他信息: 输入字符串的格式不正确。请问是什么原因呢?怎么处理,谢了!

解决方案 »

  1.   

    语句太过复杂的不好。分开吧。多用几个string变量,得到格式化后字串,然后拼接变量。
      

  2.   

    FormatException传入的参数不是合法的能转换成数字的字符串如""
    你有的TextBox.Text的值为空 或者为"aa"之类不能转化为字符串的字符
      

  3.   

    晕,你可以使用参数呀。在C#中可以使用参数来实现呀。
    如:
    SqlCommand sqlCommand=new sqlCommand(INSERT INTO Table (column1,colum2,...)VALUES(@value1,@valuel2.....)
    sqlCommand.Add(@value1,sqlDataType.char,10)
    sqlCommand.Add(@value2,sqlDataType.char,10)
    ....
    sqlCommand.Value(value1,"sqlCommand1");
    sqlCommand.Value(value2,"sqlCommand2");