2017-12-01 23 views
0

を見つけることができなかった - のコードは次のようになります。その後Visual Studioは、私は、SQL Serverのストアドプロシージャを追加するストアドプロシージャ

CREATE PROCEDURE [dbo].[sp_insertinfo] 
    @model NVARCHAR(255), 
    @price INT, 
    @id INT 
AS 
    INSERT INTO computers (model, price, id) 
    VALUES (@model, @price, @id) 

    SET @id = SCOPE_IDENTITY() 

    SELECT SCOPE_IDENTITY() 
GO 

CREATE PROCEDURE [dbo].[sp_getinfo] 
AS 
    SELECT * 
    FROM computers 
GO 

私は、Visual Studioから

using (SqlConnection con = new SqlConnection(ConnectionSTring)) 
{ 
    con.Open(); 

    SqlCommand cmd = new SqlCommand(SqlExpression,con); 
    cmd.CommandType = System.Data.CommandType.StoredProcedure; 

    SqlParameter modelparam = new SqlParameter 
       { 
        ParameterName = "@model", 
        Value = model 
       }; 

    SqlParameter priceparam = new SqlParameter 
       { 
        ParameterName = "@price", 
        Value = price 
       }; 

    SqlParameter idparam = new SqlParameter 
       { 
        ParameterName = "@id", 
        Value = id 
       }; 

    cmd.Parameters.Add(modelparam); 
    cmd.Parameters.Add(priceparam); 
    cmd.Parameters.Add(idparam); 

    int rid = cmd.ExecuteNonQuery(); 

と私をそれを使用しようとしました次のエラーが表示されます。

Could not find stored procedure 'sp_insertinfo'.

何が問題になりますか?

+0

一つの可能​​性のある問題を作品には、接続文字列は、右のデータベースを指していないことが考えられます。アプリケーションで使用しているデータベースでプロシージャを作成していない可能性があります。あなたが提供した情報で、推測できるのは1つだけです。また、[このリンク](https://blogs.sentryone.com/aaronbertrand/backtobasics-naming-stored-procedures/)を読んで、ストアドプロシージャsp_の名前を避けてください。 –

+0

は、プロシージャ名の問題だったようですが、insert_infoとget_infoに名前を変更しましたが、今はうまくいきます。 thx –

+0

サイドノート:ストアドプロシージャのプレフィックス 'sp_'を使用しないでください**。マイクロソフトは、[*ストアドプロシージャの名前付け*を参照してください](http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx)、およびあなたはいつか名前衝突のリスクを将来実行します。 [ストアドプロシージャのパフォーマンスにも悪い](http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix)単に 'sp_'を避け、他の何かを接頭辞として使うのが最善です。 –

答えて

0

私はinsert_infoとsp_getinfoするsp_insertinfoからプロシージャ名を変更 - > GET_INFO、それは罰金

+4

'sp_'プロシージャ名の接頭辞はシステムprocsに使用されているので、[documentation](https://docs.microsoft.com/en-us/sql/t-sql/statements/create-プロシージャ - トランザクション - SQL)。 –

+1

ここでさらに読むために、sp_接頭辞に関する優れた記事があります。 https://sqlperformance.com/2012/10/t-sql-queries/sp_prefix –