2016-12-31 3 views
-5

私を供給していなかったパラメータ「@name」は、フォームを作成期待し、私はアプリケーションを実行したときに、私はこのエラーを取得しています、ストアドプロシージャからのアクセスを取得する必要があります。プロシージャまたは関数が「spAddEmployee」

Procedure or function 'spAddEmployee' expects parameter '@name', which was not supplied

のC#コード:

string connectionstring = ConfigurationManager.ConnectionStrings["AddEmployee"].ConnectionString; 

using (SqlConnection con = new SqlConnection(connectionstring)) 
{ 
    SqlCommand cmd = new SqlCommand("dbo.spAddEmployee", con); 
    cmd.CommandType = CommandType.StoredProcedure; 

    con.Open(); 

    SqlParameter paramname = new SqlParameter(); 
    paramname.ParameterName = "@Name"; 
    paramname.Value = employee.Name; 
    cmd.Parameters.Add(paramname); 

    SqlParameter paramgender = new SqlParameter(); 
    paramname.ParameterName = "@gender"; 
    paramname.Value = employee.Gender; 
    cmd.Parameters.Add(paramgender); 

    SqlParameter paramcity = new SqlParameter(); 
    paramname.ParameterName = "@city"; 
    paramname.Value = employee.City; 
    cmd.Parameters.Add(paramcity); 

    SqlParameter paramdateofbirth = new SqlParameter(); 
    paramdateofbirth.ParameterName = "@dateofbirth"; 
    paramname.Value = employee.Dateofbirth; 
    cmd.Parameters.Add(paramdateofbirth); 

    cmd.ExecuteNonQuery(); 

    con.Close(); 
} 

my procedure code is given in snapshot

答えて

2

にあなたは私を助けてください「性別と都道府県名」に使用したのと同じSqlParameterオブジェクト(paramname)を使用しています。基本的に最初のジェンダーと都市の値を上書きしています。だから私はあなたのCity値はnullだと仮定しているので、それはエラーを投げている。

これは、今、私は私のストアドプロシージャにアクセスすることができ、あなたの助けのために

using (var con = new SqlConnection(connectionstring)) 
{ 
    var cmd = new SqlCommand("dbo.spAddEmployee", con) { 
           CommandType = CommandType.StoredProcedure}; 
    con.Open(); 
    var paramname = new SqlParameter 
    { 
     ParameterName = "@Name", 
     Value = employee.Name 
    }; 
    cmd.Parameters.Add(paramname); 

    var paramgender = new SqlParameter 
    { 
     ParameterName = "@gender", 
     Value = employee.Gender 
    }; 
    cmd.Parameters.Add(paramgender); 

    var paramcity = new SqlParameter 
    { 
     ParameterName = "@city", 
     Value = employee.City 
    }; 
    cmd.Parameters.Add(paramcity); 

    var paramdateofbirth = new SqlParameter 
    { 
     ParameterName = "@dateofbirth", 
     Value = employee.Dateofbirth 
    }; 
    cmd.Parameters.Add(paramdateofbirth); 
    cmd.ExecuteNonQuery(); 

} 
+1

はいおかげで動作するはずです –

関連する問題