Solved

Error while executing MySQL Stored Procedure

Posted on 2008-11-02
8
287 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 143

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
Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

 

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

NEW Veeam Agent for Microsoft Windows

Backup and recover physical and cloud-based servers and workstations, as well as endpoint devices that belong to remote users. Avoid downtime and data loss quickly and easily for Windows-based physical or public cloud-based workloads!

Question has a verified solution.

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

Suggested Solutions

Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
Creating and Managing Databases with phpMyAdmin in cPanel.
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

680 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