C #, SQL вставлять эти SqlCommands, только если txtBasoC.Text> 0, если нет, пропустить и перейти к следующей SqlCommand - PullRequest
0 голосов
/ 21 сентября 2018

Ну, у меня есть 3 текстовых поля, и каждый из них вставляет для каждой строки в один клик

Я пытаюсь вставить несколько строк в один клик, но я не хочу, чтобы они вставлялись, если текстовое поле равно 0 или ноль, еслитак что просто пропустите это к следующим строкам

вот что я пробовал, я надеюсь, вы поймете мою идею, что я делаю

    int valueBSC, valuesBSM, valueBSB;

                bool validBSC = int.TryParse(txtBasoC.Text, out valueBSC) && valueBSC > 0;
                bool validBSM = int.TryParse(txtBasoM.Text, out valuesBSM) && valuesBSM > 0;
                bool validBSB = int.TryParse(txtBasoB.Text, out valueBSB) && valueBSB > 0;

//BasoC
            if (!validBSC)
            {
                // prompt the user to do it right
                con.Open();
                SqlCommand cmd3 = new SqlCommand("INSERT INTO Transaksi (idStruk,Product_Name,Jumlah,TotalHarga,Tanggal_Transaksi) VALUES (@idStruk,@Product_Name,@Jumlah,@TotalHarga,@Tanggal_Transaksi)", con);
                cmd3.Parameters.Add("@idStruk", lblidstruk.Text);
                cmd3.Parameters.Add("@Product_Name", chkmkn2.Text);
                cmd3.Parameters.Add("@Jumlah", valueBSC);
                cmd3.Parameters.Add("@TotalHarga", TbasoC);
                cmd3.Parameters.Add("@Tanggal_Transaksi", lbldate.Text);
                cmd3.ExecuteNonQuery();
                con.Close();
                return;
            }

            if (!validBSM)
            {
                //BasoMie
                con.Open();
                SqlCommand cmd4 = new SqlCommand("INSERT INTO Transaksi (idStruk,Product_Name,Jumlah,TotalHarga,Tanggal_Transaksi) VALUES (@idStruk,@Product_Name,@Jumlah,@TotalHarga,@Tanggal_Transaksi)", con);
                cmd4.Parameters.Add("@idStruk", lblidstruk.Text);
                cmd4.Parameters.Add("@Product_Name", chkmkn3.Text);
                cmd4.Parameters.Add("@Jumlah", valuesBSM);
                cmd4.Parameters.Add("@TotalHarga", Tbasom);
                cmd4.Parameters.Add("@Tanggal_Transaksi", lbldate.Text);
                cmd4.ExecuteNonQuery();
                return;
            }
            con.Close();


            if (!validBSB)
            {
                //Baso Bihun
                con.Open();
                SqlCommand cmd5 = new SqlCommand("INSERT INTO Transaksi (idStruk,Product_Name,Jumlah,TotalHarga,Tanggal_Transaksi) VALUES (@idStruk,@Product_Name,@Jumlah,@TotalHarga,@Tanggal_Transaksi)", con);
                cmd5.Parameters.Add("@idStruk", lblidstruk.Text);
                cmd5.Parameters.Add("@Product_Name", chkmkn4.Text);
                cmd5.Parameters.Add("@Jumlah", valueBSB);
                cmd5.Parameters.Add("@TotalHarga", Tbasob);
                cmd5.Parameters.Add("@Tanggal_Transaksi", lbldate.Text);
                cmd5.ExecuteNonQuery();
                return;
            }

            con.Close();

есть идеи изменить / изменить, чтобы сделать такой же, как этот?

вставка значений в столбец evry с параметрами, но у меня есть более 3 строк для вставки в одно и то же время ... но я, если столбец Jumlah получает 0 или ни одного, просто пропустите вставку SqlCommand и переходите к следующей ..

1 Ответ

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

Вы можете поместить свои текстовые поля в массив так, чтобы вы могли зацикливаться:

TextBox[] txts = new TextBox[] {txtBasoC, txtBasoM, txtBasoB};

foreach(TextBox txt in txts)
{
    int result = 0;
    if(int.TryParse(txt.Text, out result) && result > 0)
    {
         //Do your insert
    }   
}

Также помните, что способ, которым я поместил их в массив, был, потому что я не знаю, как ваша форма разработана игде текстовые поля, например, если они находятся в групповом поле с именем group, вы можете сделать это:

foreach(TextBox txt in group.Controls.OfType<TextBox>().ToArray())
{
    int result = 0;
    if(int.TryParse(txt.Text, out result) && result > 0)
    {
         //Do your insert
    }   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...