locked
C# sql duplicate code RRS feed

  • Question

  • User1298215938 posted

    can some please let me how to fix my code?

    SqlConnection con = new SqlConnection("constring");
                SqlCommand cmd = new SqlCommand("SELECT * FROM Ware WHERE Green=@Green,Red=@Red,Active=@Active", con);
                cmd.Parameters.AddWithValue("@Green", Green.Text);
                cmd.Parameters.AddWithValue("@Red", Red.Text);
                cmd.Parameters.AddWithValue("@Active", Active.Text);
                

                con.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.HasRows)
                {

                    
                    con.Close();
                }
                else
                {
                    con.Close();
                    con.Open();
                    cmd = new SqlCommand("Insert INTO Ware(Green,Red,Active) VALUES(@Green,@Red,@Active)", con);
                    cmd.Parameters.AddWithValue("@Green", Green.Text);
                    cmd.Parameters.AddWithValue("@Red", Red.Text);
                    cmd.Parameters.AddWithValue("@Active", Active.Text);
                    cmd.ExecuteNonQuery();
                    con.Close();
                    
                }

    Friday, September 25, 2020 8:53 PM

Answers

  • User1298215938 posted

    i figured it out instead of using , use AND instead 

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Friday, September 25, 2020 9:57 PM
  • User475983607 posted

    I would use a single script.

    IF NOT EXISTS(SELECT (1) FROM Ware WHERE Green=@Green AND Red=@Red AND Active=@Active) THEN
    BEGIN
        Insert INTO Ware(Green, Red, Active) VALUES(@Green, @Red, @Active)
    END

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Friday, September 25, 2020 10:02 PM
  • User753101303 posted

    Hi,

    Start with :

    SqlConnection con = new SqlConnection(constring); // not "constring"
    SqlCommand cmd = new SqlCommand("SELECT * FROM Ware WHERE Green=@Green AND Red=@Red AND Active=@Active", con);

    It's best to tell which error you have when showing code that "doesn't work".

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Friday, September 25, 2020 10:19 PM

All replies

  • User1298215938 posted

    i figured it out instead of using , use AND instead 

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Friday, September 25, 2020 9:57 PM
  • User475983607 posted

    I would use a single script.

    IF NOT EXISTS(SELECT (1) FROM Ware WHERE Green=@Green AND Red=@Red AND Active=@Active) THEN
    BEGIN
        Insert INTO Ware(Green, Red, Active) VALUES(@Green, @Red, @Active)
    END

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Friday, September 25, 2020 10:02 PM
  • User753101303 posted

    Hi,

    Start with :

    SqlConnection con = new SqlConnection(constring); // not "constring"
    SqlCommand cmd = new SqlCommand("SELECT * FROM Ware WHERE Green=@Green AND Red=@Red AND Active=@Active", con);

    It's best to tell which error you have when showing code that "doesn't work".

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Friday, September 25, 2020 10:19 PM