Q:
You develop an inventory management application called XYZManagement that will call a Microsoft SQL Server stored procedure named sp_GetDailyXYZSales. The stored procedure will run a query that returns your daily sales total as an output parameter. This total will be displayed to users in a message box.
Your application uses a SqlCommand object to run sp_GetDailyXYZSales. You write the
following code to call sp_GetDailyXYZSales:
SqlConnection cnn = new SqlConnection(myConnString);
SqlCommand cmd = new SqlCommand(“sp_GetDaily XYZ Sales”, cnn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter prm = cmd.Parameters.Add(“@ItemTotal”,SqlDbType.Int);
prm.Direction = ParameterDirection.Output;
cnn.Open();
cmd.ExecuteNonQuery();
Now you must write additional code to access the output parameter. Which code segment should you use?
Answer & Explanation
Answer: C) MessageBox.Show(?Total is: ? + cmd.Parameters[?@ItemTotal?
Explanation: The @ItemTotal parameter is declared as an output parameter with SQL Server data type INT.We use the Value property of the SQLParameter class to retrieve the value of this parameter. We must also convert the INT value to a string value with the ToString method. We then supply this string to the MessageBox.Show method.
Incorrect Answers
Option A, B:
The @ItemTotal parameter is the output parameter. Using @Output this way is incorrect. Output is a keyword and no variable named @Output has been declared.
Option D:
We must use the Value method to retrieve the value of the parameter..
View Answer
Report Error
Discuss