2016-12-04 6 views
0

データベースから情報を表示するデータグリッドビューがあります。
私は最後の行に情報を追加して、新しい行をデータベースに追加するボタンaddをクリックします。
機能は次のとおりです。私はそれをデバッグすると、すべての行を通過し、すべての情報を取得しますが、データベースに新しい行を追加しません。
機能は自分のデータベースにデータを追加しません

private void addNewAgent() 
{ 
    int row = 0; 

    if (ViewState["CurrentTable"] !=null) 
    { 
     DataTable mydt = (DataTable)ViewState["CurrentTable"]; 
     DataRow myrow = null;    

     if (mydt.Rows.Count>0) 
     { 
      for (int i = 1; i <= mydt.Rows.Count; i++) 
      { 

       TextBox fn = GridView1.Rows[row].Cells[1].FindControl("txt_FirstName") as TextBox; 
       TextBox ln = GridView1.Rows[row].Cells[2].FindControl("txt_LastName") as TextBox; 
       TextBox email = GridView1.Rows[row].Cells[3].FindControl("txt_Email") as TextBox; 

       myrow = mydt.NewRow(); 
       myrow["UserID"] = i + 1; 
       mydt.Rows[i - 1]["FirstName"] = fn.Text; 
       mydt.Rows[i - 1]["LastName"] = ln.Text; 
       mydt.Rows[i - 1]["email"] = email.Text; 

       row++;     
      } 
      mydt.Rows.Add(myrow);     
      ViewState["CurrentTable"] = mydt; 
      GridView1.DataSource = mydt; 
      GridView1.DataBind();    
     } 
     else 
     { 
      Response.Write("view state is null"); 
     } 
    } 

} 

答えて

0

データベースにデータを保存するコードがありません。 今は、gridviewデータをviewstateデータテーブルに追加するだけです。 グリッドビュー自体がすでにビューステートにデータを保持しているので、私はそれをやっているのか分かりません。

imho、ページの読み込み時にgridviewのデータをロードする データベースを更新するには、gridviewのrowcommands(編集、更新、削除)をキャッチします。あなたは簡単にGridViewを介してデータを管理する方法をオンラインサンプルがあります

ここにあなたがすぐに編集上のデータを永続化しない具体的な理由を持っている場合は、ボタン「更新DB」を追加することができる1 http://asp.net-informations.com/gridview/gridview-operations.htm

でありますあなたのviewstateデータテーブル内のすべてのレコードをループし、明示的には、関連するデータベースレコードを更新します

+0

しかし、それを行うことによって:mydt.Rows.Add(myrow);私は私のテーブルに追加していますか?私は通常、私のコマンドビルダを使用します – NewPassionnate

+1

あなたのデータテーブルは(メモリ内の)データベースから切断され、その変更を永続させるために、特にsqldataadapterを使ってコマンドやロジックを呼び出す必要があります。http://stackoverflow.com/questions/7055799 /後にデータセットを保存する方法をデータベースに変更する方法 –

関連する問題