Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 195
  • 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
What Kind of Coding Program is Right for You?

There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best 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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

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