dodanie parametrów do SqlCommand

0

Witam.
Jak dodać parametry

cmd.Parameters.AddWithValue("@nazwa", "jakaś nazwa");

do poniższego kodu?

using (SqlConnection con = new SqlConnection(connW))
{
	using (SqlCommand cmd = new SqlCommand("SELECT Id, Name FROM Customers WHERE Name=@nazwa"))
	{
		using (SqlDataAdapter sda = new SqlDataAdapter())
		{
			cmd.Connection = con;
                        // może tu ???
			sda.SelectCommand = cmd;
			using (DataTable dt = new DataTable())
			{
				sda.Fill(dt);
				GridView1.DataSource = dt;
				GridView1.DataBind();
			}
		}
	}
}

Dziękuję za pomoc :-)

1
        public static void Select(string connection, string name)
        {
            using (SqlConnection con = new SqlConnection(connection))
            {
                using (SqlCommand cmd = new SqlCommand("SELECT Id, Name FROM Customers WHERE Name=@name"))
                {
                    using (SqlDataAdapter sda = new SqlDataAdapter())
                    {
                        cmd.Parameters.Add(new SqlParameter("@name", name));
                        cmd.Connection = con;
                        sda.SelectCommand = cmd;
                        using (DataTable dt = new DataTable())
                        {
                            sda.Fill(dt);
                        }
                    }
                }
            }
        }

Oczywiście connection stringa lepiej brać z jakiejś konfiguracji, a nie tak jak tutaj pokazałem - to jest tylko przykład i nic więcej. ;)
Jeżeli chcesz kilka parametrów to możesz to stablicować:

        public static void Select(string connection, string name, string surname)
        {
            using (SqlConnection con = new SqlConnection(connection))
            {
                using (SqlCommand cmd = new SqlCommand("SELECT Id, Name FROM Customers WHERE Name=@name AND Surname=@surname"))
                {
                    using (SqlDataAdapter sda = new SqlDataAdapter())
                    {
                        cmd.Parameters.Add(new[] {
                            new SqlParameter("@name", name),
                            new SqlParameter("@surname", surname)
                        });

                        cmd.Connection = con;
                        sda.SelectCommand = cmd;
                        using (DataTable dt = new DataTable())
                        {
                            sda.Fill(dt);
                        }
                    }
                }
            }
        }

Jeżeli chcesz wyszukiwać w dowolnym fragmencie pola to musisz zrobić LIKE zamiast = w zapytaniu oraz:

new SqlParameter("@name", '%' + name + '%')

1 użytkowników online, w tym zalogowanych: 0, gości: 1