を見つけることができなかった - のコードは次のようになります。その後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'.
何が問題になりますか?
一つの可能性のある問題を作品には、接続文字列は、右のデータベースを指していないことが考えられます。アプリケーションで使用しているデータベースでプロシージャを作成していない可能性があります。あなたが提供した情報で、推測できるのは1つだけです。また、[このリンク](https://blogs.sentryone.com/aaronbertrand/backtobasics-naming-stored-procedures/)を読んで、ストアドプロシージャsp_の名前を避けてください。 –
は、プロシージャ名の問題だったようですが、insert_infoとget_infoに名前を変更しましたが、今はうまくいきます。 thx –
サイドノート:ストアドプロシージャのプレフィックス '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_'を避け、他の何かを接頭辞として使うのが最善です。 –