首页 > 解决方案 > 在单个按钮中逐行将多个 txtbox 值添加到列数据表?C# SQL

问题描述

我有5 columns而且比10 records保存更多。

我尝试的是用一个按钮插入超过 10 行click.event

我正在使用参数并像这样重复从 10 多个 texboxes / 标签中创建记录,并在一次运行中将值插入 dbo.Transaksi。

string FakturID = "BSCB";
private void btnsave_Click_1(object sender, EventArgs e)
        {

 lblidKode.Text = "";
            SqlDataAdapter sda2 = new SqlDataAdapter("Select isnull(max(cast(idKode as int)),0)+1 from Laporan", con);
            DataTable dt2 = new DataTable();
            sda2.Fill(dt2);
            lblidKode.Text = dt2.Rows[0][0].ToString();
            lblidstruk.Text = FakturID + this.lblidKode.Text;

            con.Close();
//INSERT TRANSAKSI
            //BasoSU
            con.Open();
            SqlCommand cmd2 = new SqlCommand("INSERT INTO Transaksi (idStruk,Product_Name,Jumlah,Tanggal_Transaksi) VALUES (@idStruk,@Product_Name,@Jumlah,@Tanggal_Transaksi)", con);
            cmd2.Parameters.Add("@idStruk", lblidstruk.Text);
            cmd2.Parameters.Add("@Product_Name", chkmkn1.Text);
            cmd2.Parameters.Add("@Jumlah", txtBasoSpecialUrat.Text);
            cmd2.Parameters.Add("@Tanggal_Transaksi", lbldate.Text);
            cmd2.ExecuteNonQuery();
            con.Close();

            //BasoC
            con.Open();
            SqlCommand cmd3 = new SqlCommand("INSERT INTO Transaksi (idStruk,Product_Name,Jumlah,Tanggal_Transaksi) VALUES (@idStruk,@Product_Name,@Jumlah,@Tanggal_Transaksi)", con);
            cmd3.Parameters.Add("@idStruk", lblidstruk.Text);
            cmd3.Parameters.Add("@Product_Name", chkmkn2.Text);
            cmd3.Parameters.Add("@Jumlah", txtBasoC.Text);
            cmd3.Parameters.Add("@Tanggal_Transaksi", lbldate.Text);
            cmd3.ExecuteNonQuery();
            con.Close();
            //BasoMie
            con.Open();
            SqlCommand cmd4 = new SqlCommand("INSERT INTO Transaksi (idStruk,Product_Name,Jumlah,Tanggal_Transaksi) VALUES (@idStruk,@Product_Name,@Jumlah,@Tanggal_Transaksi)", con);
            cmd4.Parameters.Add("@idStruk", lblidstruk.Text);
            cmd4.Parameters.Add("@Product_Name", chkmkn3.Text);
            cmd4.Parameters.Add("@Jumlah", txtBasoM.Text);
            cmd4.Parameters.Add("@Tanggal_Transaksi", lbldate.Text);
            cmd4.ExecuteNonQuery();
            con.Close();

            //Baso Bihun
            con.Open();
            SqlCommand cmd5 = new SqlCommand("INSERT INTO Transaksi (idStruk,Product_Name,Jumlah,Tanggal_Transaksi) VALUES (@idStruk,@Product_Name,@Jumlah,@Tanggal_Transaksi)", con);
            cmd5.Parameters.Add("@idStruk", lblidstruk.Text);
            cmd5.Parameters.Add("@Product_Name", chkmkn4.Text);
            cmd5.Parameters.Add("@Jumlah", txtBasoB.Text);
            cmd5.Parameters.Add("@Tanggal_Transaksi", lbldate.Text);
            cmd5.ExecuteNonQuery();




            MessageBox.Show("Berhasil Tersimpan Dalam Laporan!");
            con.Close();
//Refresh
            this.Hide();
            Meja1 lm = new Meja1();
            lm.ShowDialog();
        }

有没有更好的方法来实现这样的目标?

标签: c#sqlssms

解决方案


其中一个选项是创建一个存储过程,它将接受 XML 或用户定义的数据类型作为输入参数。

通过使用从 XML 或数据类型中选择到实际表中,您将能够在数据库中插入记录,而无需使用任何循环。


推荐阅读