2011-08-12 9 views
2

Visual C#から呼び出すSQL Server関数があります。私は、いずれかのパラメータにDEFAULT値を使用したいと思います。これを達成するためにVisual C#からどのような価値を渡す必要がありますか?それはオプションのパラメータ(それが提供するデフォルトを持っている)ですのでお電話の際に、あなたがする必要があるすべては、単にそのパラメータが含まれていませんVisual Studio(C#) - SQL Server関数を呼び出すときに関数のDEFAULT値を指定する方法

@MySampleSqlParam VarChar(50) = NULL 

: おかげで、 RKG

答えて

3

は、あなたがこのような何かを意味すると仮定すると、手順。そのため、SqlCommand.ParametersコレクションにSqlParameterを追加しないでください。

+0

私は、パラメータを削除しようとしたが、それは文句を言います。私は、データベース側で関数を呼び出すときに、デフォルト値を使用したい場合でもパラメータを指定する必要があることを知っています。私は視覚的なC#プログラムからパラメータを削除し、パラメタが不足していると訴える。しかし、私は昨日から.NETで作業し始めたので、いくつかの間違いを犯している可能性があります。 – rkg

+0

プロシージャコードを投稿すると、より効率的にデバッグすることができます。 – Tejs

2

はこれを試してみてください:

cmd.Parameters.Add("@YourParameter", SqlDbTypes.YourType).Value = DBNull.Value; 
+0

提案していただきありがとうございます。これは、パラメータのデフォルト値がNULLの場合に有効です。たとえば、デフォルト値が2に設定されている場合、これは機能しません。私は関数がnullとしてデフォルト値を持つことができ、次にnullを2に変更することができますが、それは必ずしも可能ではないかもしれません。 – rkg

1

私は、関数にNULL可能タイプを渡します。

public void saveSomething(int? somethingID, string somethingName) 
{ 
    if (somethingID.HasValue) 
    { 
     //add the parameter 
    }   
} 
をそしてSPROCにデフォルト値を使用します:ちょうどそれがnullだ場合は、パラメータを渡さない

明らか
@SomethingID INT = NULL 

を、あなたもときの状態を無視するロジックを追加する必要がありますパラメータはnullです。

0

SQLでオプションのパラメータを探しているようです。 SQLのオプションパラメータのGoogleだけです。

あなたのように、パラメータのプリセット値との関数を作成することができます

CREATE FUNCTION dbo.fnMyFunction 
(
@Param1 INT, 
@Param2 INT = 2 --Default Values is Set no need to get it from parameter 
) 
RETURNS .. 
関連する問題