【发布时间】:2016-04-06 23:47:52
【问题描述】:
我正在尝试从 DB2 数据库调用 Visual Basic 中的存储过程。我想将变量的输入作为我的 Visual Basic 代码中的参数发送并获取输出并将它们放入我的 VB 代码中的变量中。这是我的存储过程代码:
CREATE PROCEDURE VendorPROCEDURE (IN p_vendor_name VARCHAR(50),
OUT p_name VARCHAR(25),
OUT p_company_name VARCHAR(50),
OUT p_address VARCHAR(25),
OUT p_csz VARCHAR(50),
OUT p_phone CHAR(13))
DYNAMIC RESULT SETS 1
P1: BEGIN
DECLARE v_name VARCHAR(25);
DECLARE v_company_name VARCHAR(50);
DECLARE v_address VARCHAR(25);
DECLARE v_csz VARCHAR(50);
DECLARE v_phone CHAR(13);
SELECT RTRIM(REP_F_NAME || ' ' || REP_L_NAME), COMPANY_NAME, STREET,
RTRIM(CITY || ', ' || STATE || ' ' || VENDOR.ZIP_CODE) AS CSZ, PHONE_NUM
INTO v_name, v_company_name, v_address, v_csz, v_phone
FROM SALES_REP, VENDOR, ZIP
WHERE SALES_REP.REP_NUM = VENDOR.REP_NUM
AND ZIP.ZIP_CODE = VENDOR.ZIP_CODE
AND COMPANY_NAME = p_vendor_name;
SET p_name = v_name;
SET p_company_name = v_company_name;
SET p_address = v_address;
SET p_csz = v_csz;
SET p_phone = v_phone;
END P1
在我的 VB 代码中,我正在导入 IBM.Data.DB2,这是我目前拥有的代码:
Dim vendorName As String
vendorName = Vendor_ComboBox.Text
cmd = connectionstring.CreateCommand()
connectionstring.Open()
Dim trans As DB2Transaction = connectionstring.BeginTransaction()
cmd.Transaction() = trans
Dim reader As DB2DataReader
Dim procName As String = "VENDORPROCEDURE"
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = procName
我不知道从那里去哪里。
【问题讨论】:
-
从这里走?尝试添加
cmd.Execute。此外,VB 与 VBA 不同。后者主要在 MS Office 产品中运行。请相应地标记。 -
首先添加你的参数 param = new sqlparameter("p_vendor_name", ) param.direction = Input cmd.parameters.add(param),等等,改变输出参数的方向
标签: database vb.net stored-procedures db2