0
私はtextbox
を持っており、休暇イベントに私はtextboxs
はので、私はコードの下に作られた他のデータを取得するためにOracleの機能を使用していますが、私は何もデータがC#のは、Oracle関数からパラメータを返す
private void TB_PRODUCT_DESC_Leave(object sender, EventArgs e)
{
string connstr = "Data Source=JDT; User Id=admin; password=admin;";
string cmdtxt = @"F_GET_PRODUCT_INFO"; //~ Returning CUSTOMER_ID from trigger in database ~//
using (OracleConnection conn = new OracleConnection(connstr))
using (OracleCommand cmd = new OracleCommand(cmdtxt, conn))
{
try
{
cmd.CommandText = cmdtxt;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new OracleParameter("TB_PRODUCT_DESC", TB_PRODUCT_DESC.Text));
cmd.Parameters.Add(":V_PRODUCT_DESC", OracleDbType.Varchar2, ParameterDirection.ReturnValue);
conn.Open();
cmd.ExecuteReader();
TB_NOTES.Text = (cmd.Parameters[":V_PRODUCT_DESC"].Value).ToString();
MessageBox.Show(TB_NOTES.Text);
}
catch (Exception EX)
{ MessageBox.Show(EX.Message, "error msg", MessageBoxButtons.OK, MessageBoxIcon.Error); }
}
機能I見つからなかっ取得していますあなたがVARCHAR2のサイズを指定する必要が
そのリターン1つのVARCHAR2値以下CREATE OR REPLACE FUNCTION F_GET_PRODUCT_INFO (P_PRODUCT_ID NUMBER)
RETURN VARCHAR2
IS
V_PRODUCT_DESC VARCHAR2 (200);
V_UNIT_PRICE NUMBER;
V_MEASUREMENT_UNIT VARCHAR2(32);
BEGIN
SELECT PRODUCT_DESC,
UNIT_PRICE,
MEASUREMENT_UNIT
INTO V_PRODUCT_DESC,
V_UNIT_PRICE,
V_MEASUREMENT_UNIT
FROM WAREHOUSE
WHERE PRODUCT_ID = P_PRODUCT_ID;
RETURN V_PRODUCT_DESC;
END F_GET_PRODUCT_INFO;
可能性のある重複したSOの質問:http://stackoverflow.com/questions/23199713/c-sharp-call-oracle-stored-function –
@rontornambe私は正しい2つの間違い「ParameterDirection」を持っているが、戻り値と「cmdをする必要があります。実行する前にParameters.Add」をする必要がありますが、今、私は何のデータ見つかったエラーを取得していないのです – samer