2017-05-17 13 views
0

C#ASP.NET MVCのストアドプロシージャにパラメータとして文字列値を渡すことに問題があります。どんな助けでも大歓迎です。ASP.NET MVCのストアドプロシージャにパラメータとして文字列を渡すことができません

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

    SqlParameter param = new SqlParameter() 
    { 
     ParameterName = "@P_ORG", 
     Value = pOrg 
    }; 

    SqlCommand cmd = new SqlCommand("getCCM", con); 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.Parameters.Add(param); 

    using (SqlDataReader rdr = cmd.ExecuteReader()) 
    { 
     //do something 
    } 
} 
+0

..? – MethodMan

+0

何がうまくいかないのですか?例外またはコンパイルエラー? – MaLiN2223

+0

@ MaLiN2223メソッドのシグニチャは、彼のケースを作るか、壊すことはありません。欠落した 'pOrg'値を除いて、それらの意図が何であるかを判断するのに十分なコードがあります。実際のストアドプロシージャ – MethodMan

答えて

0

としては、あなたが

SqlDbType = SqlDbType.VarChar 

を追加する必要がパンカジKapareのコメントで述べている:

私は、コードスニペットが

cmd.Parameters.AddWithValue("@P_ORG", pOrg); 
cmd.Parameters.Add(pOrg); 

のように、パラメータを設定するさまざまなオプションを試してみましたSqlParameterオブジェクトに追加します。

+0

はただの成功せずにこれを試みた:SqlParameter PARAM =新しいSqlParameter(){ は、SqlDbType = SqlDbType.VarChar、 ParameterNameが= "@PERFORMING_ORG"、 値= performingOrg }。 – asreeram

+0

ちょうどfyi、私は私のアプリケーションでプロシージャを呼び出すのではなく、クエリをハードコードするときにはうまくいきます。しかし、私はクエリをハードコードしたくありません。 – asreeram

+0

例外はありますか? –

1

下記の例が問題を解決することを願っています。

command.Parameters.AddWithValue("@parameterID", parameter1); 

公式の定義:

AddWithValueはStringとObjectを取るSqlParameterCollection.Addメソッドを置き換えます。 SqlParameterCollection.Addオーバーロードで曖昧さがあるため、文字列と整数を渡すSqlDbType列挙値は、パラメータ値または文字列として解釈される可能性があるため、文字列とオブジェクトを受け取るAddのオーバーロードは推奨されません対応するSqlDbType値。名前と値を指定してパラメータを追加する場合は、常にAddWithValueを使用します。

出典:溶液でhttps://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparametercollection.addwithvalue%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

同様の問題リンク:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/e600eb8d-6c06-4c9e-ad37-5a7538c9accf/unable-to-execute-stored-procedure-with-parameters-in-mvc?forum=csharpgeneral

Difference between Parameters.Add and Parameters.AddWithValue

親切に私は自分の考えやフィードバックをお聞かせ

おかげ

あなたはこれを編集し、それがあなたの問題に関連して、関連するすべてのコードを表示することができますpOrg` `の値を代入しているカルティクMCP、MCSA

+1

こんにちはKathik、私は私の記事で述べたように私は当初AddWithValueで始めました。それは動作していません。私はMVCフレームワーク4.5.2を使用しています。以下はこのヘルプの場合の私のアクションの定義です:public JsonResult getCCM(string performingOrg) – asreeram

+0

私のアプリケーションでプロシージャを呼び出す代わりにクエリをハードコードすると、うまく動作します。しかし、私はハードコーディングする必要はありません。 – asreeram

関連する問題