私は実際にこのエラーについてうっかりしていますが、すべての関数コードは正しいですが、それでもエラーが出て、SQL Serverデータベースから情報を選択しようとしています。プロシージャまたは関数sp_select_companydetailsの引数が多すぎます
ストアドプロシージャ:
create procedure sp_select_companydetails
@id varchar(5)
as
begin
select company_name, company_address
from CompanyDetails
end
C#コード:
2)フォームのボタンクリックイベントでクラスで
string id = "1";
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_select_companydetails";
cmd.Parameters.Add("@id", id);
FillDataset();
public DataSet FillDataset()
{
try
{
using (cmd)
{
DataSet ds = new DataSet();
cmd.Connection = con;
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
cmd.Parameters.Clear();
return ds;
}
}
catch (Exception)
{
throw;
}
}
私は、フォームのボタンをクリックしてください私はこのエラーを受け取ります:
Procedure or function sp_select_companydetails has too many arguments specified.
は私に良い解決策を提案する
はあなたがそれを必要とする新しい毎回のように、それを作成する代わりに、グローバルSqlCommandオブジェクトを使用して、事前に
を読むことをお勧めします。注意:**あなたのストアドプロシージャのプレフィックス '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_'を避け、他の何かを接頭辞として使うのが最善です。 –