Добавление нескольких значений TXTbox в столбцы с возможностью датирования построчно одной кнопкой?C # Sql - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть 5 columns и более 10 records для сохранения.

Я пытался вставить более 10 строк одной кнопкой click.event

Я использую параметры и повторяю вот так, чтобы создавать записи из более чем 10 текстовых полей / меток и вставлятьзначения в 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();
        }

Есть ли лучший способ достичь такой цели?

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Вы можете использовать значение xml в качестве параметра ntext в «Процедуре хранения», например:

<data><t>text1</t><t>text2</t></data>

используется в качестве параметра ntext в процедуре хранения.

Вы можете использовать функции sql, которые читают xmlи преобразовать каждый тег в новую строку.

0 голосов
/ 19 сентября 2018

Одной из опций будет создать хранимую процедуру, которая будет принимать либо XML, либо определенный пользователем тип данных в качестве входного параметра.

Используя select from XML или datatype в фактическую таблицу, вы сможете вставить запись в базу данных без использования цикла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...