2017-04-15 28 views
0

私は2つの列を持つgridviewを持っています。そのうちの1つはドロップダウンリストのテンプレートフィールドです。私はgridviewの外に保存ボタンを使ってデータベースにすべての行を保存したい私がクリックすると、gridviewの最初の行だけが保存されます。どのようにデータベース全体にgridviewを保存できますか?gridviewのすべての行をデータベースasp.netに保存するC#

protected void Button1_Click(object sender, EventArgs e) 
     { 

      for (int i = 0; i < GridView2.Rows.Count; i++) 
      { 

        GridViewRow row = GridView2.Rows[i]; 

        string coursecode = DropDownList1.SelectedValue.ToString(); 
        string weekno = DropDownList2.SelectedValue.ToString(); 
        string day = DropDownList3.SelectedValue; 
        string stid = row.Cells[0].Text; 
        DropDownList ddlstatus = (DropDownList)row.Cells[1].FindControl("DropDownList9"); 
        string status = ddlstatus.SelectedValue.ToString(); 

        double percentage; 
        if (status == "A") 
        { 
         if (day == "Saturday") 
         { 
          percentage = 6.66; 
         } 
         else 
         { 
          percentage = 3.33; 
         } 
        } 
        else 
        { 
         percentage = 0; 
        } 


        String strConnString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 
        SqlConnection con = new SqlConnection(strConnString); 
        String query = "insert into Attendance values (@CourseCode, @St_ID, @WeekNo, @Day,@Status, @Percentage)"; 
        SqlCommand cmd = new SqlCommand(query, con); 
        cmd.Parameters.AddWithValue("@CourseCode", coursecode); 
        cmd.Parameters.AddWithValue("@WeekNo", weekno); 
        cmd.Parameters.AddWithValue("@Day", day); 
        cmd.Parameters.AddWithValue("@St_ID", stid); 
        cmd.Parameters.AddWithValue("@Status", status); 
        cmd.Parameters.AddWithValue("@Percentage", percentage); 
        con.Open(); 
        cmd.ExecuteNonQuery(); 
        con.Close(); 
        Response.Redirect("~/DoctorAddEditAttendance.aspx"); 
       } 
      } 
+0

それは次のとおりです。

なお、この方法をリダイレクトするには良い習慣です。しかし、データバインディングを使用すれば、はるかに簡単になります。 – Crowcoder

+0

解決済み、ありがとうございます。私は解決としてマークすることができますので、あなたの答えを書いてください –

答えて

0
あなたはすべての行の処理を完了してループの Redirect外を移動し

。なぜなら、あなた `Redirect`ループ内

Response.Redirect("~/DoctorAddEditAttendance.aspx", false); 
Context.ApplicationInstance.CompleteRequest(); 
関連する問題