C# でストアド プロシージャから戻り値を取得する
C# で値を返すストアド プロシージャを実行すると、よく発生する論理エラーが発生します。 null が返されると、クエリの実行が省略されます。
ストアド プロシージャを実行するには戻り値を取得するには、必要なパラメータを追加した後、ExecuteNonQuery() メソッドを利用する必要があります。次のコード スニペットは、コードの修正バージョンを示しています:
SqlConnection SqlConn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MyLocalSQLServer"].ConnectionString.ToString()); System.Data.SqlClient.SqlCommand sqlcomm = new System.Data.SqlClient.SqlCommand("Validate", SqlConn); string returnValue = string.Empty; try { SqlConn.Open(); sqlcomm.CommandType = CommandType.StoredProcedure; SqlParameter param = new SqlParameter("@a", SqlDbType.VarChar); param.Direction = ParameterDirection.Input; param.Value = Username; sqlcomm.Parameters.Add(param); SqlParameter retval = sqlcomm.Parameters.Add("@b", SqlDbType.VarChar); retval.Direction = ParameterDirection.ReturnValue; // Execute the stored procedure sqlcomm.ExecuteNonQuery(); string retunvalue = (string)sqlcomm.Parameters["@b"].Value; } catch(Exception ex) { // Handle any exceptions here }
以上がC# でストアド プロシージャから戻り値を正しく取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。