如何使用c# winform将特定数据从一个表复制到另一个表

本文关键字:一个 复制 另一个 winform 何使用 数据 | 更新日期: 2023-09-27 18:15:26

我试图将指定的数据从表"sale"复制到另一个表"sale_temp",这是由"where inv_ref = @inv_ref "指定的。我正在开发visual studio 2010 c# winform。我的代码什么也不做,直到我删除"where inv_ref = @inv_ref &其参数"。我的代码

private void btn_srch_sale_Click(object sender, EventArgs e)
    {
        int s;
        DataTable dt = new DataTable();
        SqlDataAdapter dat = new SqlDataAdapter();
        SqlConnection con = new SqlConnection("Data Source=Pakrelible''SQLEXPRESS;AttachDbFilename=D:''fuda''Fuda.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
        //SqlCommand dat = new SqlCommand();
        con.Open();
        dat.SelectCommand = new SqlCommand("SELECT * FROM sale_temp", con);
        dat.SelectCommand.Connection = con;
        s = dat.Fill(dt);
        if (s >= 1)
        {
            System.Media.SystemSounds.Hand.Play();
            MessageBox.Show("Please Complete Sale Invoice First...!!!", "Error");
            this.aca.Focus();
            return;
        }
        int x;
        SqlConnection conn = new SqlConnection("Data Source=Pakrelible''SQLEXPRESS;AttachDbFilename=D:''fuda''Fuda.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
        ***SqlCommand copy = new SqlCommand("SELECT * FROM sale where inv_reff = @inv_reff ");   '' problem goes here***
        copy.Parameters.Add("@inv_reff", SqlDbType.VarChar).Value = inv_sale.Text;
        conn.Open();
        copy.Connection = conn;

        SqlDataReader sale_copy = copy.ExecuteReader();
        sale_copy.Read();
        while (sale_copy.Read())
        {
            aca_sale.Text = sale_copy["aca"].ToString();
            acn_sale.Text = sale_copy["acn"].ToString();
            act_sale.Text = sale_copy["act"].ToString();
            tele_sale.Text = sale_copy["tele"].ToString();
            memo_sale.Text = sale_copy["memo"].ToString();
            memo2_sale.Text = sale_copy["memo2"].ToString();
            inv_sale.Text = sale_copy["inv_reff"].ToString();
            inv_date_sale.Text = sale_copy["inv_date"].ToString();
            mode_sale.Text = sale_copy["mode"].ToString();
            reff_sale.Text = sale_copy["reff"].ToString();
            employe_sale.Text = sale_copy["employe"].ToString();
            dis_sale.Text = sale_copy["dis"].ToString();

            SqlDataAdapter da = new SqlDataAdapter();
            SqlConnection connn = new SqlConnection("Data Source=Pakrelible''SQLEXPRESS;AttachDbFilename=D:''fuda''Fuda.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
            da.InsertCommand = new SqlCommand("insert into sale_temp (aca,acn,act,tele,memo,memo2,inv_reff,inv_date,mode,reff,brand,part_no,descrp,qty,unt_prc,total_prc,employe,dis )" + "values(@aca,@acn,@act,@tele,@memo,@memo2,@inv_reff,@inv_date,@mode,@reff,@brand,@part_no,@descrp,@qty,@unt_prc,@total_prc,@employe,@dis )", connn);
            da.InsertCommand.Parameters.Add("@aca", SqlDbType.VarChar).Value = sale_copy["aca"].ToString();
            da.InsertCommand.Parameters.Add("@acn", SqlDbType.VarChar).Value = sale_copy["acn"].ToString();
            da.InsertCommand.Parameters.Add("@act", SqlDbType.VarChar).Value = sale_copy["act"].ToString();
            da.InsertCommand.Parameters.Add("@tele", SqlDbType.VarChar).Value = sale_copy["tele"].ToString();
            da.InsertCommand.Parameters.Add("@memo", SqlDbType.VarChar).Value = sale_copy["memo"].ToString();
            da.InsertCommand.Parameters.Add("@memo2", SqlDbType.VarChar).Value = sale_copy["memo2"].ToString();
            da.InsertCommand.Parameters.Add("@inv_reff", SqlDbType.VarChar).Value = sale_copy["inv_reff"].ToString();
            da.InsertCommand.Parameters.Add("@inv_date", SqlDbType.VarChar).Value = sale_copy["inv_date"].ToString();
            da.InsertCommand.Parameters.Add("@mode", SqlDbType.VarChar).Value = sale_copy["mode"].ToString();
            da.InsertCommand.Parameters.Add("@reff", SqlDbType.VarChar).Value = sale_copy["reff"].ToString();
            da.InsertCommand.Parameters.Add("@brand", SqlDbType.VarChar).Value = sale_copy["brand"].ToString();
            //da.InsertCommand.Parameters.Add("@brand", SqlDbType.VarChar).Value = sale_copy["brand"].ToString();
            da.InsertCommand.Parameters.Add("@part_no", SqlDbType.VarChar).Value = sale_copy["part_no"].ToString();
            da.InsertCommand.Parameters.Add("@descrp", SqlDbType.VarChar).Value = sale_copy["descrp"].ToString();
            da.InsertCommand.Parameters.Add("@qty", SqlDbType.VarChar).Value = sale_copy["qty"].ToString();
            da.InsertCommand.Parameters.Add("@unt_prc", SqlDbType.VarChar).Value = sale_copy["unt_prc"].ToString();
            da.InsertCommand.Parameters.Add("@total_prc", SqlDbType.VarChar).Value = sale_copy["total_prc"].ToString();
            da.InsertCommand.Parameters.Add("@employe", SqlDbType.VarChar).Value = sale_copy["employe"].ToString();
            da.InsertCommand.Parameters.Add("@dis", SqlDbType.VarChar).Value = sale_copy["dis"].ToString();
            //da.InsertCommand.Parameters.Add("@amnt_wrd", SqlDbType.VarChar).Value = sale_copy["amnt_wrd"].ToString();

            connn.Open();
            x = da.InsertCommand.ExecuteNonQuery();
            if (x >= 1)
            {
                System.Media.SystemSounds.Asterisk.Play();

                SqlConnection connnn = new SqlConnection("Data Source=Pakrelible''SQLEXPRESS;AttachDbFilename=D:''fuda''Fuda.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
                DataTable sdt = new DataTable();
                SqlDataAdapter sda = new SqlDataAdapter("SELECT brand,part_no,descrp,qty,unt_prc,total_prc FROM sale_temp ", connnn);
                sda.Fill(sdt);
                sale_grid.DataSource = sdt;
                connnn.Dispose();
            }
            else
            {
                MessageBox.Show("Error Posting !", "Error");
                }
}

如果我删除"where inv_ref = @inv_ref ",那么这些代码从表中复制完整的数据。有谁能帮帮我吗,也许我遗漏了什么,或者有别的办法…!!请帮助我通过编码或告诉我的错误,不要给我链接..

如何使用c# winform将特定数据从一个表复制到另一个表

我发现问题了,那就是

"while (sale_copy.Read())" insteed of this only "(sale_copy.Read())"

完整代码

private void btn_srch_sale_Click(object sender, EventArgs e)
    {
        int s;
        DataTable dt = new DataTable();
        SqlDataAdapter dat = new SqlDataAdapter();
        SqlConnection con = new SqlConnection("Data Source=Pakrelible''SQLEXPRESS;AttachDbFilename=D:''fuda''Fuda.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
        //SqlCommand dat = new SqlCommand();
        con.Open();
        dat.SelectCommand = new SqlCommand("SELECT * FROM sale_temp", con);
        dat.SelectCommand.Connection = con;
        s = dat.Fill(dt);
        if (s >= 1)
        {
            System.Media.SystemSounds.Hand.Play();
            MessageBox.Show("Please Complete Sale Invoice First...!!!", "Error");
            this.aca.Focus();
            return;
        }
        int x;
        SqlConnection conn = new SqlConnection("Data Source=Pakrelible''SQLEXPRESS;AttachDbFilename=D:''fuda''Fuda.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
        ***SqlCommand copy = new SqlCommand("SELECT * FROM sale where inv_reff = @inv_reff ");   '' problem goes here***
        copy.Parameters.Add("@inv_reff", SqlDbType.VarChar).Value = inv_sale.Text;
        conn.Open();
        copy.Connection = conn;

        SqlDataReader sale_copy = copy.ExecuteReader();
        while (sale_copy.Read())
        {
            aca_sale.Text = sale_copy["aca"].ToString();
            acn_sale.Text = sale_copy["acn"].ToString();
            act_sale.Text = sale_copy["act"].ToString();
            tele_sale.Text = sale_copy["tele"].ToString();
            memo_sale.Text = sale_copy["memo"].ToString();
            memo2_sale.Text = sale_copy["memo2"].ToString();
            inv_sale.Text = sale_copy["inv_reff"].ToString();
            inv_date_sale.Text = sale_copy["inv_date"].ToString();
            mode_sale.Text = sale_copy["mode"].ToString();
            reff_sale.Text = sale_copy["reff"].ToString();
            employe_sale.Text = sale_copy["employe"].ToString();
            dis_sale.Text = sale_copy["dis"].ToString();

            SqlDataAdapter da = new SqlDataAdapter();
            SqlConnection connn = new SqlConnection("Data Source=Pakrelible''SQLEXPRESS;AttachDbFilename=D:''fuda''Fuda.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
            da.InsertCommand = new SqlCommand("insert into sale_temp (aca,acn,act,tele,memo,memo2,inv_reff,inv_date,mode,reff,brand,part_no,descrp,qty,unt_prc,total_prc,employe,dis )" + "values(@aca,@acn,@act,@tele,@memo,@memo2,@inv_reff,@inv_date,@mode,@reff,@brand,@part_no,@descrp,@qty,@unt_prc,@total_prc,@employe,@dis )", connn);
            da.InsertCommand.Parameters.Add("@aca", SqlDbType.VarChar).Value = sale_copy["aca"].ToString();
            da.InsertCommand.Parameters.Add("@acn", SqlDbType.VarChar).Value = sale_copy["acn"].ToString();
            da.InsertCommand.Parameters.Add("@act", SqlDbType.VarChar).Value = sale_copy["act"].ToString();
            da.InsertCommand.Parameters.Add("@tele", SqlDbType.VarChar).Value = sale_copy["tele"].ToString();
            da.InsertCommand.Parameters.Add("@memo", SqlDbType.VarChar).Value = sale_copy["memo"].ToString();
            da.InsertCommand.Parameters.Add("@memo2", SqlDbType.VarChar).Value = sale_copy["memo2"].ToString();
            da.InsertCommand.Parameters.Add("@inv_reff", SqlDbType.VarChar).Value = sale_copy["inv_reff"].ToString();
            da.InsertCommand.Parameters.Add("@inv_date", SqlDbType.VarChar).Value = sale_copy["inv_date"].ToString();
            da.InsertCommand.Parameters.Add("@mode", SqlDbType.VarChar).Value = sale_copy["mode"].ToString();
            da.InsertCommand.Parameters.Add("@reff", SqlDbType.VarChar).Value = sale_copy["reff"].ToString();
            da.InsertCommand.Parameters.Add("@brand", SqlDbType.VarChar).Value = sale_copy["brand"].ToString();
            //da.InsertCommand.Parameters.Add("@brand", SqlDbType.VarChar).Value = sale_copy["brand"].ToString();
            da.InsertCommand.Parameters.Add("@part_no", SqlDbType.VarChar).Value = sale_copy["part_no"].ToString();
            da.InsertCommand.Parameters.Add("@descrp", SqlDbType.VarChar).Value = sale_copy["descrp"].ToString();
            da.InsertCommand.Parameters.Add("@qty", SqlDbType.VarChar).Value = sale_copy["qty"].ToString();
            da.InsertCommand.Parameters.Add("@unt_prc", SqlDbType.VarChar).Value = sale_copy["unt_prc"].ToString();
            da.InsertCommand.Parameters.Add("@total_prc", SqlDbType.VarChar).Value = sale_copy["total_prc"].ToString();
            da.InsertCommand.Parameters.Add("@employe", SqlDbType.VarChar).Value = sale_copy["employe"].ToString();
            da.InsertCommand.Parameters.Add("@dis", SqlDbType.VarChar).Value = sale_copy["dis"].ToString();
            //da.InsertCommand.Parameters.Add("@amnt_wrd", SqlDbType.VarChar).Value = sale_copy["amnt_wrd"].ToString();

            connn.Open();
            x = da.InsertCommand.ExecuteNonQuery();
            if (x >= 1)
            {
                System.Media.SystemSounds.Asterisk.Play();

                SqlConnection connnn = new SqlConnection("Data Source=Pakrelible''SQLEXPRESS;AttachDbFilename=D:''fuda''Fuda.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
                DataTable sdt = new DataTable();
                SqlDataAdapter sda = new SqlDataAdapter("SELECT brand,part_no,descrp,qty,unt_prc,total_prc FROM sale_temp ", connnn);
                sda.Fill(sdt);
                sale_grid.DataSource = sdt;
                connnn.Dispose();
            }
            else
            {
                MessageBox.Show("Error Posting !", "Error");
                }
}