Система.FormatException: входная строка была не в правильном формате. | Ошибка сервера в приложении '/'
Ошибка :
Входная строка была не в правильном формате.
Описание: необработанное исключение возникло во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Exception Details: System.FormatException: Input string was not in a correct format. Source Error: Line 69: { Line 70: path = Server.MapPath("~/Images/"); Line 71: int Image_Catagory = Convert.ToInt32(DrpImageCatagory.SelectedValue); Line 72: int Image_type = Convert.ToInt32(RadioImageType.SelectedValue); Line 73: con.Open(); Source File: d:\All Projects Visual Studio\Project_Trial1\Project_Trial1\ImageRep.aspx.cs Line: 71 Stack Trace: [FormatException: Input string was not in a correct format.] System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +11177559 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +145 System.Convert.ToInt32(String value) +43 Project_Trial1.ImageRep.BtnSubmit_Click(Object sender, EventArgs e) in d:\All Projects Visual Studio\Project_Trial1\Project_Trial1\ImageRep.aspx.cs:71 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +158 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +174 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +39 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +37 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +105 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4411
с фоновым кодом :
private void fillDrpImageCatagory() { con.Open(); SqlCommand cmd = new SqlCommand("Usp_GetImageCatagory", con); cmd.CommandType = CommandType.StoredProcedure; SqlDataAdapter Adap = new SqlDataAdapter(cmd); dt.Clear(); Adap.Fill(dt); DrpImageCatagory.DataSource = dt; DrpImageCatagory.DataTextField = "Descrip"; DrpImageCatagory.DataValueField = "Id"; DrpImageCatagory.DataBind(); DrpImageCatagory.Items.Insert(0, "--Select Catagory--"); con.Close(); } string ss, path; protected void BtnUpload_Click(object sender, EventArgs e) { ss= Server.MapPath("~/Images/"); FileUpload1.SaveAs(ss + FileUpload1.FileName); Image1.ImageUrl = path; } protected void BtnSubmit_Click(object sender, EventArgs e) { path = Server.MapPath("~/Images/"); int Image_Catagory = Convert.ToInt32(DrpImageCatagory.SelectedValue.ToString()); int Image_type = Convert.ToInt32(RadioImageType.SelectedValue); con.Open(); SqlCommand cmd = new SqlCommand("Insert into ImageRepository1 values('"+ TxtImageName.Text + "','" + TxtImageDescription.Text + "'," + Image_Catagory + "," + Image_type +",'" + path + "')",con); int rowcount = cmd.ExecuteNonQuery(); con.Close(); if (rowcount > 0) { LblStatus.Text = "Data Inserted Successful..!"; } else { LblStatus.Text = "Something went Wrong !"; }
база данных:
Create table ImageCategory (Id int Identity(1,1) primary key, Descrip varchar(50)) Insert into ImageCategory values('Media') Insert into ImageCategory values('Medical Science') Insert into ImageCategory values('Nature') Insert into ImageCategory values('Science') Insert into ImageCategory values('Sports') Insert into ImageCategory values('Objects/Items') Insert into ImageCategory values('Others') create proc Usp_GetImageCatagory as begin select * from ImageCategory end
Andreas Gieriet
Что вы видите при отладке нарушающей функции?
Каково же содержание этого SelectedValue
поля?
С уважением
Энди
Satpal Lakhera
я показал, что DrpImageCatagory привязан к таблице базы данных ImageCatagory
а поле SelectedValue привязывается к своему "Id", который является целым числом в ImageCatagory, как описано выше.
syed shanu
Привет,
Я думаю, что вы можете получить строку в выбранном значении .здесь вы преобразуете строку в тип данных Int проверьте код с помощью точки останова.
путь = сервер.MapPath("~/Изображения/");
Строка 71: int Image_Catagory = Convert.ToInt32(DrpImageCatagory.SelectedValue);
Строка 72: int Image_type = Convert.ToInt32(RadioImageType.SelectedValue);
Satpal Lakhera
я также пробовал использовать:
Строка 71: int Image_Catagory = конвертировать.ToInt32(DrpImageCatagory.SelectedValue);
но он выдает ту же ошибку.(как говорит отладчик)
syed shanu
Какое значение вы получили от "DrpImageCatagory.SelectedValue".
Я думаю, что вот ваша проверка ошибок это выбранное значение повторяет целочисленные значения или любое строковое значение типа.
Satpal Lakhera
каждый раз, когда он выбирает "--Select Catagory--", который находится в индексе 0, даже когда я выбираю другие значения из выпадающего списка
почему это?
syed shanu
Я предоставляю в качестве решения
Satpal Lakhera
ага! как сказал Рауль ллок, вы сказали, что это произошло из-за того, что пропал ispostback.
спасибо вам, ребята !!
ZurdoDev
Ошибка очень очевидна. DrpImageCatagory.SelectedValue не является целым числом.
Satpal Lakhera
но я привязываю его к целочисленному значению "id" в таблице базы данных ImageCatagory.
в чем причина?
Azziet
отладьте свой код... конечно, DrpImageCatagory.SelectedValue не является целым числом или может быть его не связывающим никаким значением[пусто или пробел]