【问题标题】:How to Copy Specific Data from 1 table to Another table using C# winform如何使用 C# winform 将特定数据从 1 个表复制到另一个表
【发布时间】:2013-05-25 20:26:10
【问题描述】:

我正在尝试将指定数据从表“sale”复制到另一个表“sale_temp”,该表由“where inv_reff = @inv_reff”指定。我正在使用 Visual Studio 2010 C# winform。 在我删除“inv_reff = @inv_reff & its parameter”之前,我的代码什么都不做。 我的代码

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_reff = @inv_reff”,那么这些代码会从表中复制完整的数据。 任何人都可以帮助我,可能是我错过了什么或有其他方法......!请帮助我完成编码或告诉我的错误,不要给我链接..

【问题讨论】:

  • 但你为什么要删除where inv_reff = @inv_reff
  • 因为在我删除 "where inv_reff = @inv_reff" 之前,他们的代码什么都不做。
  • 那么inv_sale.Text不匹配任何记录。
  • 不,我确定没有错误。我将整个数据更改为并尝试了所有我能做的事情......
  • 等等。 没有 where 所有 记录被提取。 where none。一定是@inv_reff 参数没有得到匹配的值。涉及前导或尾随空格?区分大小写?

标签: c# winforms visual-studio-2010 copy


【解决方案1】:

我发现了问题,那就是

"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");
                }
}

【讨论】:

    猜你喜欢
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多