Nicht finden können gespeicherte Prozedur (mit Schemata)

In meiner Datenbank habe ich drei schemas:

  1. Schema1
  2. Schema2
  3. Schema3

Objekte werden getrennt in jedem dieser Schemata abhängig, dass Objekte, die Funktion, die ich dachte, war eine gute Art, Dinge zu tun. Diese wiederum lässt keine Objekte in dbo außer den Standard-Objekte aus der model Datenbank, die ich nicht geändert haben.

Wenn ich versuche zu verweisen, die eine gespeicherte Prozedur aus dem code, während Sie Ihre eine gespeicherte Prozedur, erhalte ich eine Stored Procedure Not Found Fehler. Wenn ich das CommandType zurück zum text, den code dann funktioniert.

Habe ich nicht den code hatte, aber es sieht ungefähr so aus (geschrieben aus der Spitze von meinem Kopf, so dont erwarten, dass es zu kompilieren):

using(DbConnection conn as new DbConnection("Conn String")
{
     using(DbCommand cmd = conn.CreateCommand())
     {
         cmd.CommandText = "Schema1.usp_Category_MySproc @param1,@param2";
         cmd.CommandType = CommandType.StoredProcedure;
         conn.Open();
         DbDataReader rdr = cmd.ExecuteQuery();
         while(rdr.Read())
         {
              //DO STUFF
         }
     }
}

Mir ist auch aufgefallen, dass die Parameter müssen übergeben werden, damit andere Sie sind alle vertauscht, um (da ich nur in der Lage gewesen zu verwenden CommandType.Normal habe ich nicht getestet, die params mit den anderen Befehl geben). Ich vermute, es sollte nicht egal in welcher Reihenfolge die Parameter übergeben werden, wie, wie lange, wie jeder parameter übergeben wird?

Irgendwelche Ideen?

Wie immer, Antworten entweder in c# oder vb sind akzeptabel.

Hinweise:

  1. .Net 3.5 auf Windows 7 Enterprise
  2. Ja, ich bin mit DbCommand nicht SqlCommand
  3. Welche Sql-Server-2005->2012
Schreibe einen Kommentar