Click here to Skip to main content
15,798,592 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hello Sir,
I want to insert multiple rows data from gridview to database for this I m using xml table please help me in my code

C#
protected void btnSaved_Click(object sender, EventArgs e)
    {
        try
        {
            string strXml = String.Empty;
            DelayworkReport Dwr = new DelayworkReport();
            //DataTable _dtFinalCh = new DataTable();
            DataTable _dtFinal = new DataTable();
            acceptchangesonVirtualtableBeforeInsert();
            _dtFinal = (DataTable)ViewState["dt"];
           // DataTable _dtfinaldata = _dtFinal.AsEnumerable().Distinct().CopyToDataTable();
            if (_dtFinal != null && _dtFinal.Rows.Count > 0)
            {
                DataSet ds = new DataSet();
                ds.DataSetName = "DWR";
                ds.Tables.Add(_dtFinal);
                ds.Tables[0].TableName = "Insertxml";
                strXml = ds.GetXml();
            }
           
            grdNewDaily.DataSource = dt;
            grdNewDaily.DataBind();
        }
        catch { }

    }


C#
private void acceptchangesonVirtualtableBeforeInsert()
    {
        try
        {
            DataTable dt = new DataTable();
            dt = (DataTable)ViewState["dtfinal"];
            int count = 0;
            foreach (GridViewRow gr in grdDaily.Rows)
            {
                //string bindProjectCost = gr.Cells[4].Text;

                TextBox txtStartTime = (TextBox)gr.FindControl("txtStartTime");
                TextBox txtEndTime = (TextBox)gr.FindControl("txtEndTime");
                DropDownList ddlProject = (DropDownList)gr.FindControl("ddlProject");
                DropDownList ddlModule = (DropDownList)gr.FindControl("ddlModule");
                DropDownList ddlForm = (DropDownList)gr.FindControl("ddlForm");
                TextBox txtWorkType = (TextBox)gr.FindControl("txtWorkType");
                DropDownList ddlStatus = (DropDownList)gr.FindControl("ddlStatus");
                TextBox txtRemarks = (TextBox)gr.FindControl("txtRemarks");

                dt.Rows[count]["StartTime"] = Convert.ToString(txtStartTime.Text);
                dt.Rows[count]["EndTime"] = Convert.ToString(txtEndTime.Text);
                dt.Rows[count]["ProjectName"] = Convert.ToInt32(ddlProject.SelectedItem.Text);
                dt.Rows[count]["ModuleName"] = Convert.ToInt32(ddlModule.SelectedItem.Text);
                dt.Rows[count]["EntityName"] = Convert.ToInt32(ddlForm.SelectedItem.Text);
                dt.Rows[count]["WorkType"] = Convert.ToString(txtWorkType.Text);
                dt.Rows[count]["Status"] = Convert.ToInt32(ddlStatus.SelectedItem.Text);
                dt.Rows[count]["Remarks"] = Convert.ToString(txtRemarks.Text);
                //dt.Rows[count]["ProposedCost"] = Math.Round((Convert.ToDecimal(bindProjectCost) + Convert.ToDecimal(txtProjData.Text) + Convert.ToDecimal(txtBuildingVyay.Text)), 2).ToString();
                
               
                count++;
            }
            
            ViewState["dtfinal"] = dt;
        }
        catch { }



[edit]Subject only: "Please help me in my code" is not helpful, try to use a subject which gives us a good idea about your problem. That way we do not waste time looking if we can't help! - OriginalGriff[/edit]
Posted
Updated 3-Dec-11 0:03am
v3

1 solution

You didn't state which database, but for Oracle you can use:

VB
cmdInsert = "INSERT ALL " & _ 
            "INTO TABLE (T_ID,T_ID2,etc) VALUES (val1,val2,val3,etc) " & _
            "INTO TABLE (T_ID,T_ID2,etc) VALUES (val4,val5,val6,etc) " & _
            etc...
            "SELECT * FROM DUAL"
 
Share this answer
 
Comments
Prashant Srivastava LKO 5-Dec-11 2:28am    
I m using sqlserver 2005
Scubapro 5-Dec-11 6:13am    
Okay, check here: http://stackoverflow.com/questions/3272487/sql-server-2005-insert-multiple-rows-with-single-query

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900