c# - 在单个按钮中逐行将多个 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();
}
有没有更好的方法来实现这样的目标?
解决方案
其中一个选项是创建一个存储过程,它将接受 XML 或用户定义的数据类型作为输入参数。
通过使用从 XML 或数据类型中选择到实际表中,您将能够在数据库中插入记录,而无需使用任何循环。
推荐阅读
- sql - 如何在 Toad 中使用 SQL 脚本在桌面上编写 txt 文件
- java - 使用 BufferedReader toString 捕获归档 html,响应打印“\”
- javascript - 如何顺序从两个可观察对象中获取值?
- proxy - 有条件地使用 ProxyConnector 或 HTTPConnector
- algorithm - 使用嵌套循环降低算法的时间复杂度
- python - Python 内联生成器
- excel - 如何突出显示符合条件的特定单元格或过滤特定列表
- python - 如何使用 tensorflow hub.module 访问嵌入?
- spring - 无需指定环境变量/系统属性即可将 Spring Boot 配置拆分为多个属性文件的任何方法
- kubernetes - 除非给出完整的 FQDN,否则指向其他命名空间中服务的 ExternalName 不会解析