我想从表中插入多行到SqlServer但有问题 [英] I want to Insert Multiple Row from Table To SqlServer but Having a Problem

查看:74
本文介绍了我想从表中插入多行到SqlServer但有问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我插入数据时,最后一次插入两次。(假设我插入3行,然后我的代码在数据库的最后一行插入4行插入两次)。



我的代码........



When I Insert the data the Last Low Insert Two Time.( suppose I insert 3 row then my code inserted 4 row in data base last row insert Two Time).

My code........

 protected void btngo_Click(object sender, EventArgs e)
    {
        try
        {
            lblerror.Visible = false;
            divform.Visible = true;
            btnsave.Enabled = true;
            tblinstallment.Visible = true;
            int projectid = Convert.ToInt32(ddlproject.SelectedValue);
          
           
            ViewState["Installment"] = txtinstallment.Text.Trim();
            createtable();
        }
        catch (Exception ex) { }
    }
    protected void btnsave_Click(object sender, EventArgs e)
    {
        try
        {
            lblerror.Visible = false;
            ViewState["ItemName"] = null;
            #region DataTable

            if (dttrue == true)
            {
                table = new DataTable("Installment");

                DataColumn column1 = new DataColumn();
                column1.DataType = System.Type.GetType("System.String");
                column1.Caption = "ItemName";
                column1.ColumnName = "ItemName";

                DataColumn column2 = new DataColumn();
                column2.DataType = System.Type.GetType("System.String");
                column2.Caption = "Quantity";
                column2.ColumnName = "Quantity";

                DataColumn column3 = new DataColumn();
                column3.DataType = System.Type.GetType("System.String");
                column3.Caption = "UOM";
                column3.ColumnName = "UOM";

                DataColumn column4 = new DataColumn();
                column4.DataType = System.Type.GetType("System.String");
                column4.Caption = "Description";
                column4.ColumnName = "Description";




                table.Columns.Add(column1);
                table.Columns.Add(column2);
                table.Columns.Add(column3);
                table.Columns.Add(column4);

                dttrue = false;
            }
            #endregion
            DataRow row;
            int count = int.Parse(ViewState["Installment"].ToString());
            for (int i = 1; i <= count; i++)
            {
                DropDownList textdays;
                int uom = 0;
                int ItemName = 0;
                
                DropDownList textbp = (DropDownList)tblinstallment.FindControl("txtbasic" + i.ToString());

              

                if (textbp.SelectedIndex != 0)
                {
                    ItemName = Convert.ToInt32(textbp.SelectedIndex);
                }
                else
                {
                    
                    lblerror.Text = "Please select Item Name";
                    lblerror.Visible = true;
                    lblerror.ForeColor = Color.Red;
                    return;
                }



                ViewState["ItemName"] = ItemName;
                TotalBasicPrice = 0;
                TotalOtherCharges = 0;
                TotalPLC = 0;
                TotalIFM = 0;
                TotalDiscountAdjust = 0;
        


                textdays = (DropDownList)tblinstallment.FindControl("txtdays" + i.ToString());
                if (textdays.SelectedIndex != 0)
                {
                    uom = Convert.ToInt32(textdays.SelectedIndex);
                }
                else
                {

                    lblerror.Text = "Please select UOM";
                    lblerror.Visible = true;
                    lblerror.ForeColor = Color.Red;
                    return;
                }
            
                TextBox textIFM = (TextBox)tblinstallment.FindControl("txtifm" + i.ToString());
             
                quantity = textIFM.Text.Trim();

                TextBox textinststage = (TextBox)tblinstallment.FindControl("txtpaymentdesc" + i.ToString());
                string Description = textinststage.Text.Trim();

                                

                

               
                row = table.NewRow();
                row["ItemName"] = ItemName;
                row["UOM"] = uom;
                row["Quantity"] = quantity;
                row["Description"] = Description;
              
                table.Rows.Add(row);
            }
            ViewState["ItemName"] = null;
            DataSet ds = new DataSet();
            ds.Tables.Add(table);
            ViewState["Table"] = ds;

            TotalBasicPrice = 0;
            TotalOtherCharges = 0;
            TotalPLC = 0;
            TotalIFM = 0;
            TotalDiscountAdjust = 0;

              
           
            SaveRequisition();
            //Response.Redirect("~/Purchase/Requisition.aspx");
        }
        catch (Exception ex)
        {
            lblerror.Text = ex.ToString();
            lblerror.Visible = true;
            lblerror.ForeColor = Color.Red;
        }
      }
public void SaveRequisition()
    {
        try
        {
            if (ViewState["Table"] != null)
            {
                ds = (DataSet)ViewState["Table"];
                int count = ds.Tables[0].Rows.Count;

                objConnection = commonfunctions.GetConnection();
                if (objConnection.State != ConnectionState.Open)
                {
                    objConnection.Open();
                }
                myTransaction = objConnection.BeginTransaction();
                myCommand = new SqlCommand("sp_insert_Requisition", objConnection, myTransaction);
                myCommand.CommandType = CommandType.StoredProcedure;

                for (int i = 0; i < count; i++)
                {
                    myCommand.Parameters.Clear();

                    SqlParameter param1 = new SqlParameter("@projectid", SqlDbType.Int, 4);
                    param1.Value = Convert.ToInt32(ddlproject.SelectedValue);
                    myCommand.Parameters.Add(param1);

                    SqlParameter param2 = new SqlParameter("@DeptId", SqlDbType.Int, 4);
                    param2.Value = Convert.ToInt32(ddlpaymentplan.SelectedValue);
                    myCommand.Parameters.Add(param2);



                    SqlParameter param3 = new SqlParameter("@ItemName", SqlDbType.Int, 4);
                    param3.Value = Convert.ToDecimal(ds.Tables[0].Rows[i]["ItemName"].ToString());
                    myCommand.Parameters.Add(param3);

                    SqlParameter param4 = new SqlParameter("@Quantity", SqlDbType.Decimal, 9);
                    param4.Value = Convert.ToDecimal(ds.Tables[0].Rows[i]["Quantity"].ToString());
                    myCommand.Parameters.Add(param4);

                    SqlParameter param5 = new SqlParameter("@UOM", SqlDbType.Int, 4);
                    param5.Value = Convert.ToDecimal(ds.Tables[0].Rows[i]["UOM"].ToString());
                    myCommand.Parameters.Add(param5);

                    SqlParameter param6 = new SqlParameter("@description", SqlDbType.VarChar, 200);
                    param6.Value = (ds.Tables[0].Rows[i]["Description"].ToString());
                    myCommand.Parameters.Add(param6);

                    SqlParameter param7 = new SqlParameter("@Submitedby", SqlDbType.VarChar, 50);
                    param7.Value = TextBox1.Text;
                    myCommand.Parameters.Add(param7);

                    SqlParameter param8 = new SqlParameter("@Approvedby", SqlDbType.VarChar, 50);
                    param8.Value = TextBox2.Text;
                    myCommand.Parameters.Add(param8);

                    myCommand.ExecuteNonQuery();
                  
                }

                myCommand.ExecuteNonQuery();
                myTransaction.Commit();
                myCommand.Dispose();
                lblerror.Text = "Data save successfully"; ;
                lblerror.ForeColor = Color.Blue;
                lblerror.Visible = true;
                divform.Visible = false;
                txtinstallment.Text = "";
                ViewState["Table"] = null;
                objConnection.Close();
                ddlproject.SelectedIndex = 0;
                ddlpaymentplan.SelectedIndex = 0;

               
             

                //bindGrid();

             
                           
             
               
            }
        }
        catch (Exception ex)
        {
            btnsave.Enabled = true;
            myTransaction.Rollback();
            objConnection.Close();
            lblerror.Text = ex.Message;
            lblerror.Visible = true;
        }
    }

推荐答案

像这样使用



确保数据表列名和表列名应该相同



SqlConnection Con = new SqlConnection(@Connectionstring);

Con.Open();

DataRow [] rowArray = dtright.Select(); // dtright是数据表

using(SqlBulkCopy bulkCopy = new SqlBulkCopy(Con) )

{

bulkCopy.DestinationTableName =dbo.FileUpload;

试试

{

bulkCopy.WriteToServer(rowArray);

MessageBox.Show(成功插入......!);

}

catch(Exception ex)

{

MessageBox.Show(Operation faild);

}

}

Con.Close();
Use like this

make sure that datatable column name and table column name should be same

SqlConnection Con = new SqlConnection(@"Connectionstring");
Con.Open();
DataRow[] rowArray = dtright.Select();// dtright is datatable
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(Con))
{
bulkCopy.DestinationTableName = "dbo.FileUpload";
try
{
bulkCopy.WriteToServer(rowArray);
MessageBox.Show("Successfully inserted...!");
}
catch (Exception ex)
{
MessageBox.Show("Operation faild");
}
}
Con.Close();


试试这个



protected void btngo_Click(object sender,EventArgs e)

{

试试

{

lblerror.Visible = false;

divform.Visible = true;

btnsave.Enabled = true;

tblinstallment.Visible = true;

int projectid = Convert.ToInt32(ddlproject.SelectedValue) ;





ViewState [Installment] = txtinstallment.Text.Trim();

createtable( );

}

catch(exception ex){}

}

protected void btnsave_Click(object sender, EventArgs e)

{

试试

{

lblerror.Visible = false;

ViewState [我temName] = null;

#region DataTable



if(dttrue == true)

{

table = new DataTable(分期付款);



DataColumn column1 = new DataColumn();

column1 .DataType = System.Type.GetType(System.String);

column1.Caption =ItemName;

column1.ColumnName =ItemName;



DataColumn column2 = new DataColumn();

column2.DataType = System.Type.GetType(System.String);

column2.Caption =Quantity;

column2.ColumnName =Quantity;



DataColumn column3 = new DataColumn ();

column3.DataType = System.Type.GetType(System.String);

column3.Caption =UOM;

column3.ColumnName =UOM;



DataColumn column4 = new DataColumn();

column4.DataType = System.Type.GetType(System.String);

column4.Caption =Description;

column4.ColumnName =描述;









table.Columns.Add (column1);

table.Columns.Add(column2);

table.Columns.Add(column3);

table.Columns。添加(第4列);



dttrue = false;

}

#endregion

DataRow行;

int count = int.Parse(ViewState [Installment]。ToString());

for(int i = 1;我< =计数; i ++)

{

DropDownList textdays;

int uom = 0;

int ItemName = 0;



DropDownList textbp =(DropDownList)tblinstallment.FindControl(txtbasic+ i.ToString());







if(textbp.SelectedIndex!= 0)

{

ItemName = Convert.ToInt32(textbp .SelectedIndex);

}

其他

{



lblerror.Text =请选择项目名称;

lblerror.Visible = true;

lblerror.ForeColor = Color.Red;

return;

}







ViewSta te [ItemName] = ItemName;

TotalBasicPrice = 0;

TotalOtherCharges = 0;

TotalPLC = 0;

TotalIFM = 0;

TotalDiscountAdjust = 0;







textdays =(DropDownList)tblinstallment.FindControl(txtdays+ i.ToString());

if(textdays.SelectedIndex!= 0)

{

uom = Convert.ToInt32(textdays.SelectedIndex);

}

else

{



lblerror.Text =请选择UOM;

lblerror.Visible = true;

lblerror.ForeColor = Color.Red;

返回;

}



TextBox textIFM =(TextBox)tblinstallment.FindControl(txtifm+ i.ToString());



quantity = textIFM.Text.Trim();



TextBox textinststage =(TextBox)tblinstallment.FindControl(txtpaymentdesc+ i.ToString());

string描述= textinststage.Text.Trim();













row = table.NewRow();

row [ItemName] = ItemName;

行[UOM] = uom;

行[数量] =数量;

行[描述] =说明;



table.Rows.Add(row);

}

ViewState [ItemName] = null;

DataSet ds = new DataSet();

ds.T ables.Add(table);

ViewState [Table] = ds;



TotalBasicPrice = 0;

TotalOtherCharges = 0;

TotalPLC = 0;

TotalIFM = 0;

TotalDiscountAdjust = 0;







SaveRequisition(表格);

//Response.Redirect(\"~/Purchase/Requisition。 aspx);

}

catch(exception ex)

{

lblerror.Text = ex.ToString ();

lblerror.Visible = true;

lblerror.ForeColor = Color.Red;

}

}

public void SaveRequisition(DataTable dt)

{

try

{

if(ViewState [Table]!= null)

{

ds =(DataSet)ViewState [Table];

int count = ds.Tables [0] .Rows.Count;



objConnection = commonfunctions.GetConnection();

if(objConnection.State!= ConnectionState.Open)

{

objConnection.Open();

}

DataRow [] rowArray = dtright.Select(); // dtright是数据表

使用(SqlBulkCopy bulkCopy = new SqlBulkCopy(Con))

{

bulkCopy.DestinationTableName =YourTableName;

尝试

{

bulkCopy.WriteToServer(rowArray);

lblerror.Text =数据保存成功; ;

lblerror.ForeColor = Color.Blue;

lblerror.Visible = true;

divform.Visible = false;

txtinstallment.Text =;

ViewState [Table] = null;

objConnection.Close();

ddlproject .SelectedIndex = 0;

ddlpaymentplan.SelectedIndex = 0;

}

catch(exception ex)

{

btnsave.Enabled = true;

myTransaction.Rollback();

objConnection.Close();

lblerror.Text = ex.Message;

lblerror.Visible = true;

}

}

}

}

}
try this

protected void btngo_Click(object sender, EventArgs e)
{
try
{
lblerror.Visible = false;
divform.Visible = true;
btnsave.Enabled = true;
tblinstallment.Visible = true;
int projectid = Convert.ToInt32(ddlproject.SelectedValue);


ViewState["Installment"] = txtinstallment.Text.Trim();
createtable();
}
catch (Exception ex) { }
}
protected void btnsave_Click(object sender, EventArgs e)
{
try
{
lblerror.Visible = false;
ViewState["ItemName"] = null;
#region DataTable

if (dttrue == true)
{
table = new DataTable("Installment");

DataColumn column1 = new DataColumn();
column1.DataType = System.Type.GetType("System.String");
column1.Caption = "ItemName";
column1.ColumnName = "ItemName";

DataColumn column2 = new DataColumn();
column2.DataType = System.Type.GetType("System.String");
column2.Caption = "Quantity";
column2.ColumnName = "Quantity";

DataColumn column3 = new DataColumn();
column3.DataType = System.Type.GetType("System.String");
column3.Caption = "UOM";
column3.ColumnName = "UOM";

DataColumn column4 = new DataColumn();
column4.DataType = System.Type.GetType("System.String");
column4.Caption = "Description";
column4.ColumnName = "Description";




table.Columns.Add(column1);
table.Columns.Add(column2);
table.Columns.Add(column3);
table.Columns.Add(column4);

dttrue = false;
}
#endregion
DataRow row;
int count = int.Parse(ViewState["Installment"].ToString());
for (int i = 1; i <= count; i++)
{
DropDownList textdays;
int uom = 0;
int ItemName = 0;

DropDownList textbp = (DropDownList)tblinstallment.FindControl("txtbasic" + i.ToString());



if (textbp.SelectedIndex != 0)
{
ItemName = Convert.ToInt32(textbp.SelectedIndex);
}
else
{

lblerror.Text = "Please select Item Name";
lblerror.Visible = true;
lblerror.ForeColor = Color.Red;
return;
}



ViewState["ItemName"] = ItemName;
TotalBasicPrice = 0;
TotalOtherCharges = 0;
TotalPLC = 0;
TotalIFM = 0;
TotalDiscountAdjust = 0;



textdays = (DropDownList)tblinstallment.FindControl("txtdays" + i.ToString());
if (textdays.SelectedIndex != 0)
{
uom = Convert.ToInt32(textdays.SelectedIndex);
}
else
{

lblerror.Text = "Please select UOM";
lblerror.Visible = true;
lblerror.ForeColor = Color.Red;
return;
}

TextBox textIFM = (TextBox)tblinstallment.FindControl("txtifm" + i.ToString());

quantity = textIFM.Text.Trim();

TextBox textinststage = (TextBox)tblinstallment.FindControl("txtpaymentdesc" + i.ToString());
string Description = textinststage.Text.Trim();






row = table.NewRow();
row["ItemName"] = ItemName;
row["UOM"] = uom;
row["Quantity"] = quantity;
row["Description"] = Description;

table.Rows.Add(row);
}
ViewState["ItemName"] = null;
DataSet ds = new DataSet();
ds.Tables.Add(table);
ViewState["Table"] = ds;

TotalBasicPrice = 0;
TotalOtherCharges = 0;
TotalPLC = 0;
TotalIFM = 0;
TotalDiscountAdjust = 0;



SaveRequisition(table);
//Response.Redirect("~/Purchase/Requisition.aspx");
}
catch (Exception ex)
{
lblerror.Text = ex.ToString();
lblerror.Visible = true;
lblerror.ForeColor = Color.Red;
}
}
public void SaveRequisition(DataTable dt)
{
try
{
if (ViewState["Table"] != null)
{
ds = (DataSet)ViewState["Table"];
int count = ds.Tables[0].Rows.Count;

objConnection = commonfunctions.GetConnection();
if (objConnection.State != ConnectionState.Open)
{
objConnection.Open();
}
DataRow[] rowArray = dtright.Select();// dtright is datatable
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(Con))
{
bulkCopy.DestinationTableName = "YourTableName";
try
{
bulkCopy.WriteToServer(rowArray);
lblerror.Text = "Data save successfully"; ;
lblerror.ForeColor = Color.Blue;
lblerror.Visible = true;
divform.Visible = false;
txtinstallment.Text = "";
ViewState["Table"] = null;
objConnection.Close();
ddlproject.SelectedIndex = 0;
ddlpaymentplan.SelectedIndex = 0;
}
catch (Exception ex)
{
btnsave.Enabled = true;
myTransaction.Rollback();
objConnection.Close();
lblerror.Text = ex.Message;
lblerror.Visible = true;
}
}
}
}
}


这篇关于我想从表中插入多行到SqlServer但有问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆