#c# #sql #database
#c# #sql #База данных
Вопрос:
C # — Кнопка обновления не обновляется
Как уже упоминалось. При нажатии кнопки обновления после внесения изменений страница перезагружается, но не обновляется в SQLDB. Я только начинаю программировать и хотел бы получить небольшую помощь.
protected void Button2_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BiodiversityProject"].ConnectionString);
conn.Open();
//See above comments
string image_folder = Server.MapPath("~\uploadedimages\");
string dbfilename1 = GridView1.SelectedRow.Cells[6].Text.ToString();
string dbfilename2 = GridView1.SelectedRow.Cells[7].Text.ToString();
if (VideoFileUpload.HasFile)
{
string filename1 = VideoFileUpload.FileName.ToString();
VideoFileUpload.SaveAs(image_folder filename1);
dbfilename1 = filename1;
}
string multimedia_folder = Server.MapPath("~\uploaded_multimedia\");
if (VideoFileUpload.HasFile)
{
string filename2 = VideoFileUpload.FileName.ToString();
VideoFileUpload.SaveAs(multimedia_folder filename2);
dbfilename2 = filename2;
}
//string connectionString = null;
//int userId = 0;
SqlCommand UpdateCommand = new SqlCommand("UPDATE LeagueTable SET BirdName = @p1, Quantity = @p2, Place = @p3, Location =@p4, Image = @p5, mediaclip = @p6, Username = @p7, datetime = @p8, Active Status= @p9 WHERE Bird_ID = " GridView1.SelectedDataKey.Value.ToString());
UpdateCommand.Parameters.Add(new SqlParameter("@p1", System.Data.SqlDbType.VarChar)).Value = TextBox1.Text.ToString();
UpdateCommand.Parameters.Add(new SqlParameter("@p2", System.Data.SqlDbType.VarChar)).Value = TextBox2.Text.ToString();
UpdateCommand.Parameters.Add(new SqlParameter("@p3", System.Data.SqlDbType.VarChar)).Value = DropDownList2.SelectedValue.ToString();
UpdateCommand.Parameters.Add(new SqlParameter("@p4", System.Data.SqlDbType.VarChar)).Value = txtlocation.Text.ToString();
UpdateCommand.Parameters.Add(new SqlParameter("@p5", System.Data.SqlDbType.VarChar)).Value = dbfilename1.ToString();
UpdateCommand.Parameters.Add(new SqlParameter("@p6", System.Data.SqlDbType.VarChar)).Value = dbfilename2.ToString();
UpdateCommand.Parameters.Add(new SqlParameter("@p7", System.Data.SqlDbType.VarChar)).Value = User.Identity.Name;
UpdateCommand.Parameters.Add(new SqlParameter("@p8", System.Data.SqlDbType.VarChar)).Value = DateTime.Now.ToShortDateString().ToString();
UpdateCommand.Parameters.Add(new SqlParameter("@p9", System.Data.SqlDbType.VarChar)).Value = DropDownList1.SelectedValue.ToString();
try
{
conn.Open();
UpdateCommand.ExecuteNonQuery();
conn.Close();
}
catch (Exception)
{
}
GridView1.DataBind();
Комментарии:
1. во-первых, ГДЕ Bird_ID = » GridView1.SelectedDataKey. Значение. toString()); сделайте параметризацию, ГДЕ Bird_ID = @PAR_BIRDID и добавьте новые параметры UpdateCommand . Параметры. Добавить(новый параметр SqlParameter(«@PAR_BIRDID», System.Data.SqlDbType.VarChar)). Значение = GridView1.SelectedDataKey. Значение. toString(); что такое ошибка?
2. вероятно, происходит исключение, и ваш пустой catch скрывает его. Вы также должны переместить conn. Закрыть() до finally { }
3. catch (исключение ex) { MessageBox. Показать (например, сообщение); }
4. Как уже упоминалось,
catch(Exception ex)
затем поместите точку останова в блок catch и посмотрите на исключение.5. Кстати, зачем использовать параметры везде, кроме
WHERE Bird_ID = " GridView1.SelectedDataKey.Value.ToString()
?