【发布时间】:2016-09-20 18:37:00
【问题描述】:
错误来自“NoOfRooms”,还有另一个名为“NoOfDays”的文本框是相同的。如果文本框的 1 具有值,则另一个将弹出下面的错误,但是如果它们都有值,则程序可以正常工作。我不知道如何使 1 仅在没有错误的情况下工作。
mscorlib.dll 中出现“System.FormatException”类型的未处理异常
附加信息:输入字符串的格式不正确。
int NoOfRooms = 0;
double NoOfNights = 0;
NoOfRooms = Convert.ToInt32(txtNoRooms.Text);
NoOfNights = Convert.ToDouble(txtNoNights.Text);
totalCostHotel = (totalCostHotel * NoOfRooms) * NoOfNights;
{
SqlCommand command = new SqlCommand("INSERT INTO [HotelData] (RoomType, NoOfRooms, NoOfNights, totalCostHotel)"+
"VALUES (@RoomType, @NoOfRooms, @NoOfNights, @totalCostHotel)", connection);
connection.Open();
command.Parameters.AddWithValue("@RoomType", RoomType);
command.Parameters.AddWithValue("@NoOfRooms", NoOfRooms);
command.ExecuteNonQuery();
connection.Close();
【问题讨论】:
-
确保没有空格,也许可以考虑使用
TryParse()。 -
txtNoRooms.Text和txtNoNights.Text的值是多少? -
使用 Tryparse 是防止将数字以外的其他字符添加到文本框的好选择。还有,Sql Server 表上的 NoOfRooms 是什么数据类型?
-
@DourHighArch txtNoRoom.text 是任何整数,例如 5(int) 与 txtNoNights.text 相同
-
@Auguste NoOfRooms 在数据库中是整数
标签: c# formatexception