2010-08-08 15 views

cevap

40

ADO.NET'i kullandığınızı farz ediyorum. Eğer öyleyse, SqlParameter sınıfı "Yön" özelliğine sahiptir. Yönü çıkışa ayarlayın ve sorgu yürütüldükten sonra bu parametreden değeri okuyun. Böyle

şey:

using (SqlCommand cmd = new SqlCommand("MyStoredProcedure", cn)) 
{ 
    cmd.CommandType = CommandType.StoredProcedure; 
    SqlParameter parm = new SqlParameter("@pkid", SqlDbType.Int); 
    parm.Value = 1; 
    parm.Direction = ParameterDirection.Input; 
    cmd.Parameters.Add(parm); 

    SqlParameter parm2 = new SqlParameter("@ProductName", SqlDbType.VarChar); 
    parm2.Size = 50; 
    parm2.Direction = ParameterDirection.Output; // This is important! 
    cmd.Parameters.Add(parm2); 

    cn.Open(); 
    cmd.ExecuteNonQuery(); 
    cn.Close(); 
} 
+0

çıktı parametresinin ondalık (8,2) olduğunu belirlemem gereken başka bir sorum var. – shmandor

+0

Soruyu anladığımdan emin değilim. Eğer çıkış değişkeninde bir ondalık döndürüyorsanız, SqlDbType'ı Ondalık olarak ayarlamanız gerekir. Aslında bir ondalık döndürüyorsanız, şu şekilde çevirebilirsiniz: (ondalık) cmd.Parameters [@ "MyDecimal"]. Değer – Merrimack

+6

Ben 'SqlConnection' ve 'SqlCommand' kullanmak için kullanarak kullanmanızı şiddetle öneririm (....) {...} 'en iyi uygulama olarak bloklar –

İlgili konular