• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 194
  • Last Modified:

Creating a method to retun a vaule from an SQL query

I’m trying to create a method so that when it is called, it will return a value based on what it received.   Here is what I have come up with so far.  I guess you could say I'm still a C# dummy.

private void GetProductPrice(int productID)
            {            

                  SqlConnection cnSQL;

                  SqlCommand cmSQL;

                  SqlDataReader drSQL;
            
                  string strSQL;

                  try
                  {
                        
                        strSQL = "SELECT product_price from t_products where product_id =productID";
                        cnSQL = new SqlConnection(Connectionstring);
                        cnSQL.Open();
                        cmSQL = new SqlCommand(strSQL, cnSQL);
                        drSQL = cmSQL.ExecuteReader();
                        
                        
                        return drSQL.?????;   //at this point I'm not sure how to return a value to the method that invoked it.
}


Thanks,
Sean
0
sean-keys
Asked:
sean-keys
  • 3
  • 2
1 Solution
 
dubbs2003Commented:
Your method declaration has a type 'void' return identifier.

i.e. private void GetProductPrice(int productID)

If you want to return a value you have to change void to the type of value you are returning

i.e. private String GetProductPrice(int productID)
0
 
dubbs2003Commented:
you can return

drSQL.GetSqlValues(Object[]);

//Summary:
//Gets all attribute columns in the collection for the current row.  

//Parameters:
//values: An array of System.Object into which to copy the attribute columns.

//Returns:
//The number of instances of System.Object in the array.
0
 
dubbs2003Commented:
So you return the Object[] after you call GetSqlValues then just iterate through the columns
0
The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

 
sean-keysAuthor Commented:
I think I get it, since this is my command "SELECT product_price from t_products where product_id =productID", which will only return one value

I would want this?????

drSQL.GetSqlValues(product_price[]);


Thanks in advance




0
 
rajkumarrgCommented:
Hi

You can use ExecuteScalar instead of ExecuteReader as you going to get only one value.

And in return type instead of void use string.

Hope it would be useful for you

Thanks
Raj
0
 
sean-keysAuthor Commented:
This is what I ended up with.


public void GetProductPrice(int productID)
            {
                  int ID = productID;
                  string strSQL = "SELECT product_price from t_products where product_id = productID";

                  SqlConnection cnSQL;

            cnSQL = new SqlConnection(Connectionstring);
                  
                  SqlCommand getprice = new SqlCommand(strSQL, cnSQL);
                  getprice.Connection.Open();
                  price = getprice.ExecuteScalar().ToString();
                  cnSQL.Close();
                  
            }


Thanks for all your help,
Sean
0

Featured Post

Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now