これは私を夢中にさせています;)
私はこのストアドプロシージャを持っています...
ALTER PROCEDURE [dbo].[sproc_FindFoundries]
(@materials varchar(1000),
@capabilities varchar(1000))
AS
BEGIN
/* insert SQL code here */
END
このプロシージャは、カンマで区切られた 2 つの文字列を受け入れます。私のアプリケーションには、次のコードがあります。
BCDataContext db = new BCDataContext();
SqlParameter prmMaterials = new SqlParameter("materials", SqlDbType.VarChar, 1000);
prmMaterials.Value = materialList;
SqlParameter prmCapability = new SqlParameter("capabilities", SqlDbType.VarChar, 1000);
prmCapability.Value = capabilityList;
SqlConnection cn = new SqlConnection(db.Connection.ConnectionString);
SqlCommand cmd = new SqlCommand("sproc_FindFoundries", cn);
cmd.Parameters.Add(prmMaterials);
cmd.Parameters.Add(prmCapability);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
コードを実行すると、エラーが発生します
プロシージャまたは関数 [sproc_name] には、指定されていないパラメータ '@materials' が必要です。
データセットを埋めようとすると。テスト時に、両方のパラメーターにデータが含まれており、null でないことを確認しました。見逃したものはありますか?2 番目の目のペアをいただければ幸いです。
ありがとう。