刚学的C# 不太会 问:C#中如何吧GridView的数据批量添加到数据库中?是不是还要加事务?望高人不吝赐教!

解决方案 »

  1.   

        protected void btnExcute_Click(object sender, EventArgs e)
        {
            if(dddlNewPlan.SelectedIndex==0)
            {
                return;
            }
            string studentCode = "";
            RadioButton ckx;
            foreach (GridViewRow dr in dgvStudent.Rows)
            {
                if (dr.RowType != DataControlRowType.DataRow)
                {
                    continue;
                }
                ckx = dr.Cells[0].FindControl("ckx") as RadioButton;
                if (ckx == null)
                    return;
                if (ckx.Checked)
                {
                    studentCode += (dr.Cells[1].FindControl("lblStutCode") as Label).Text + ",";
                }
            }
            if (studentCode.Length == 0)
            {
                return;
            }
            studentCode = studentCode.Substring(1, studentCode.Length - 1);        StringBuilder insert = new StringBuilder(
                "SELECT tblkey " +
                    "FROM Charge " +
                    "WHERE (ChargeCode = '" + dddlNewPlan.SelectedValue + "') AND (StudentCode = '" + studentCode + "') AND delete_flg='0'"
                );
            if (0 < p.QueryDALBySqlToList(insert.ToString()).Count)
            {
                LM.Text = "<script>alert('此学生已经添加了指定的缴费计划,无法重复添加!');</script>";
                return;
            }
            insert = new StringBuilder("INSERT INTO [STDSCHOOL].[dbo].[Charge](" +
                    "[ChargeCode], " +
                    "[ChargePlanCode], " +
                    "[ChargeStandardCode], " +
                    "[StudentCode], " +
                    "[ChargeValues], " +
                    "[ChargeTime], " +
                    "[insert_time], " +
                    "[op_user_id], " +
                    "[delete_flg])" +
                "SELECT newid(),'");
            insert.Append(dddlNewPlan.SelectedValue);
            insert.Append("',ChargeStandardCode,'");
            insert.Append(studentCode);
            insert.Append("'," +
                "0," +
                "GETDATE()," +
                "GETDATE(),'");
            insert.Append(QSTSD.RulesControl.GetOperUserid.UserId);
            insert.Append("','0' " +
                "FROM ChargePlanChargeStandard cp WHERE cp.ChargePlanCode='");
            insert.Append(dddlNewPlan.SelectedValue);
            insert.Append("' AND cp.delete_flg='0'");
            if (0 < (new QSTSD.OperateDB.PublicDAL()).InsertDALBySql(insert.ToString()))
            {
                LM.Text = "<script>alert('添加成功!');</script>";
            }
            else
            {
                LM.Text = "<script>alert('添加失败!');</script>";
            }
        }
        protected void dgvStudent_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if(!Page.IsPostBack)
            {
                CheckBox ckx=e.Row.Cells[0].FindControl("ckx") as CheckBox;
                if (ckx == null)
                {
                    return;
                }
                ckx.Attributes.Add("onclick", "return checkRadio(this)");
            }
        }
    }*********************************
    上面是代码 我是刚接触C#真的无助啊
      

  2.   

    循环每一行 这个思路我有 但是具体实践就不会了  为了保持原子性和一致性,事务的话应该是有的,但是还是具体不会写,因为刚接触C#,SQL数据库也是它熟悉我我不熟悉它,请大家详细点告诉我 谢谢大家了 
      

  3.   

    添加已搞定!事务不知道怎么处理,CSDN里的都是高手,帮帮忙!回帖就给分!