2015-05-17 97 views
0

我想更新我的數據庫,其中包含兩個文本和一個圖像所需的文件名。datatable不會更新

問題是圖像和文件名更新,但其他兩個文本值標題和正文不會受到影響,並且不會更改以前的值。另外visual studio不會有任何問題,執行命令的消息顯示它執行了命令,但除了圖像改變之外沒有任何問題。

protected void Page_Load(object sender, EventArgs e) 
    { 


     if (Session["user"] == null) 
      Response.Redirect("~/default.aspx"); 

     if (Request .QueryString ["action"]=="edit") 
     { 
      Panel1.Visible = true; 
     } 

     if (Request.QueryString["edit"] != null) 
     { 


      Panel1.Visible = true; 
      SqlConnection con2 = new SqlConnection(); 
      con2.ConnectionString =GNews.Properties.Settings.Default.connectionstring; 
      DataTable dt3 = new DataTable(); 
      con2.Open(); 
      SqlDataReader myReader = null; 
      SqlCommand myCommand = new SqlCommand("select * from loadpost_view where Postid=" + Request.QueryString["edit"].ToString() + "", con2); 
      myReader = myCommand.ExecuteReader(); 



      while (myReader.Read()) 
      { 
       title_txt.Text=myReader ["Title"].ToString(); 
       bodytxt.Text = myReader["Body"].ToString(); 
      } 
      con2.Close(); 
     } 
protected void btn_addpost_Click(object sender, EventArgs e) 
    { 
string title= title_txt .Text ; 
string body=bodytxt .Text ; 

if (Request.QueryString["edit"] != null) 
{ 
    string message; 

    string filename = thumb_uploader.FileName; 
    string path = HttpContext.Current.Server.MapPath("~") + "\\Thumb"; 
    string exup = System.IO.Path.GetExtension(thumb_uploader.FileName); 
    string[] ext = { ".jpg", ".png", ".jpeg" }; 
    if (Array.IndexOf(ext, exup) < 0) 
    { 
     message = "not correct."; 
    } 

    if (thumb_uploader.FileBytes.Length/1024 > 400) 
    { 
     message = "not currect."; 
    } 

    while (System.IO.File.Exists(path + "\\" + filename + exup)) 
    { 
     filename += "1"; 
    } 

    savepath = path + "\\" + filename; 

    if (thumb_uploader.HasFile) 
    { 
     thumb_uploader.SaveAs(savepath); 

     thumb = thumb_uploader.FileName; 
     SqlCommand command; 
     SqlDataAdapter da; 
     SqlConnection con3 = new SqlConnection(); 

     con3.ConnectionString = GNews.Properties.Settings.Default.connectionstring; 
     command = new SqlCommand(); 
     command.Connection = con3; 
     da = new SqlDataAdapter(); 
     da.SelectCommand = command; 

     command.CommandText = "UPDATE tbl_post SET [email protected] ,[email protected] ,[email protected] Where Postid=" + Request.QueryString["edit"].ToString(); 
     con3.Open(); 
     command.Parameters.AddWithValue("@title", title); 
     command.Parameters.AddWithValue("@body", body); 
     command.Parameters.AddWithValue("@thu", thumb_uploader .FileName); 

     command.ExecuteNonQuery(); 
     con3.Close(); 
     message = "its ok."; 
     lbl_result.Text = message; 
    } 
    else 
    { 
     using (SqlConnection con3 = new SqlConnection(GNews.Properties.Settings.Default.connectionstring)) 
     { 
      string sql = "update tbl_post SET [email protected] ,[email protected] Where [email protected]" ; 
      using (SqlCommand command = new SqlCommand(sql, con3)) 
      { 
       con3.Open(); 

       command.Parameters.AddWithValue("@title", title); 
       command.Parameters.AddWithValue("@body", body); 
       command.Parameters.AddWithValue("@postid", Request.QueryString["edit"].ToString()); 

       command.ExecuteNonQuery(); 
       con3.Close(); 
       message = "its ok."; 
       lbl_result.Text = message; 
      } 
     } 
    } 
} 
+1

我編輯了您的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

+0

您的Page_Load事件中似乎有可能缺少對IsPostback的檢查。你能展示那個事件的代碼嗎? – Steve

+0

@hamidmosavi只是將字符串變量名稱更改爲title1和body1,並嘗試..它不是一個適當的解決方案..有時它會導致我的問題,如果參數名稱和變量名稱是相同的 – Sachu

回答

0

我發現我需要這個代碼,包括我的頁面加載讀取數據庫,所以它不會做的答案時,我就更新button.I點擊意味着這個問題是所有關於後回事情。

if (!Page.IsPostBack) 
     { 
      if (Request.QueryString["edit"] != null) 
      { 


       Panel1.Visible = true; 
       SqlConnection con2 = new SqlConnection(); 
       con2.ConnectionString = GNews.Properties.Settings.Default.connectionstring; 
       DataTable dt3 = new DataTable(); 
       con2.Open(); 
       SqlDataReader myReader = null; 
       SqlCommand myCommand = new SqlCommand("select * from loadpost_view where Postid=" + Request.QueryString["edit"].ToString() + "", con2); 
       myReader = myCommand.ExecuteReader(); 



       while (myReader.Read()) 
       { 
        title_txt.Text = myReader["Title"].ToString(); 
        bodytxt.Text = myReader["Body"].ToString(); 
       } 
       con2.Close(); 
      } 
     }