Solved

Error while executing MySQL Stored Procedure

Posted on 2008-11-02
8
285 Views
Last Modified: 2012-05-05
When I try to execute following code, it gives error. See the image. Though the stored procedure is already present in the database. What's the problem?

OpenConnection();
MySqlCommand cmdStockHistoryReport = new MySqlCommand("procStockHistoryReport",myCN);
 
cmdStockHistoryReport.CommandType = CommandType.StoredProcedure;
cmdStockHistoryReport.Parameters.AddWithValue("ForDate", dtpDate.Value.ToString("yyyy-MM-dd"));
 
cmdStockHistoryReport.ExecuteNonQuery();
cmdStockHistoryReport.Dispose();
CloseConnection();

Open in new window

sp-error2.JPG
0
Comment
Question by:rpkhare
8 Comments
 
LVL 26

Expert Comment

by:Anurag Thakur
ID: 22865015
the exception clearly states that the sp is not found
it means that either you connection string is pointing to a different database or the user with which you are authenticating the connection string does not have permissions to execute you stored procedure
0
 
LVL 26

Expert Comment

by:ushastry
ID: 22865036
Agree with Prev comment...

Try this and see where is that routine first.. if you get any records stating "procStockHistoryReport" is in some schema then just prefix that schema to procStockHistoryReport
SELECT ROUTINE_NAME,ROUTINE_SCHEMA
  FROM information_schema.ROUTINES
 WHERE ROUTINE_NAME like "procStockHistoryReport";

Open in new window

0
 
LVL 142

Assisted Solution

by:Guy Hengel [angelIII / a3]
Guy Hengel [angelIII / a3] earned 60 total points
ID: 22865108
eventually a case sensitivity issue?
or the user you connect with has no permissions to that procedure?
or the procedure is not in the database you connected to, ie you connected to the wrong db...
0
Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

 

Expert Comment

by:Paramhans
ID: 22865830
hv u checked the owner of the stored procedure in your db.

if you are connecting the db with default 'sa' user then your code should work else you need to use the user name while calling the procedure.

eg. UName.procStockHistoryReport



hope it works for you.
0
 
LVL 8

Author Comment

by:rpkhare
ID: 22865861
Attached below is the image of the output received with the query given by: ushastry.
query-result.JPG
0
 
LVL 26

Accepted Solution

by:
ushastry earned 65 total points
ID: 22865893
Gr8...  its a case issue...   your schema name is "stockist" abut error shows that procedure cannot be found in "Stockist" ... check where use are using "Stockist"  and replace that with "stockist"...




OpenConnection();
MySqlCommand cmdStockHistoryReport = new MySqlCommand("stockist.procStockHistoryReport",myCN);
 
cmdStockHistoryReport.CommandType = CommandType.StoredProcedure;
cmdStockHistoryReport.Parameters.AddWithValue("ForDate", dtpDate.Value.ToString("yyyy-MM-dd"));
 
cmdStockHistoryReport.ExecuteNonQuery();
cmdStockHistoryReport.Dispose();
CloseConnection();

Open in new window

0
 
LVL 8

Author Comment

by:rpkhare
ID: 22874064
Correct. It is a case-sensitivity issue. MySQL is objecting on the database name. It is not considering 'Stockist'? It is considering 'stockist'.

Funny. It has no objection with the case of variables and stored procedure name.
0
 
LVL 26

Expert Comment

by:ushastry
ID: 22874094
0

Featured Post

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction Since I wrote the original article about Handling Date and Time in PHP and MySQL (http://www.experts-exchange.com/articles/201/Handling-Date-and-Time-in-PHP-and-MySQL.html) several years ago, it seemed like now was a good time to updat…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
This Micro Tutorial will give you a basic overview how to record your screen with Microsoft Expression Encoder. This program is still free and open for the public to download. This will be demonstrated using Microsoft Expression Encoder 4.
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…

773 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question