private void populateListView() { SqlConnection con = DbConnectionFactory.newConnection(); String Username_Buyer = buyerBox.Text; String Category_Name = categoryBox.Text; if (Category_Name == "") { Category_Name = "%"; } String search_keywords = ""; if (searchButtonWasClicked) { search_keywords = searchBox.Text; } try { con.Open(); SqlCommand cm1 = new SqlCommand("SELECT * " + "FROM ecommerce.UDF_SEARCH_PRODUCT_BUYER (@Keywords, @Cat_Name, @Username_Buyer) ", con); cm1.Parameters.AddWithValue("@Username_Buyer", Username_Buyer); cm1.Parameters.AddWithValue("@Cat_Name", Category_Name); cm1.Parameters.AddWithValue("@Keywords", search_keywords); SqlDataReader rd1 = cm1.ExecuteReader(); while (rd1.Read()) { ListViewItem item = new ListViewItem(rd1["Code"].ToString()); item.SubItems.Add(rd1["Product_Name"].ToString()); item.SubItems.Add(rd1["Category_Name"].ToString()); item.SubItems.Add(rd1["Description"].ToString()); String seller_username = rd1["username_Seller"].ToString(); item.SubItems.Add(seller_username); String seller_rating = rd1["avgRating"].ToString(); if (sellerHasReviews(seller_username)) { item.SubItems.Add(seller_rating); } else { item.SubItems.Add("Not Rated"); } ProdBuyerLV.Items.Add(item); } } catch (Exception ex) { MessageBox.Show("FAILED TO OPEN CONNECTION TO DATABASE DUE TO THE FOLLOWING ERROR \r\n" + ex.Message, "Connection Test", MessageBoxButtons.OK); } finally { searchButtonWasClicked = false; con.Close(); } }