我在 C# 中创建了一个 Windows 窗体应用程序,它将使用 Oracle 数据库中的一个过程。
在这种形式中DataGridView
,我打算通过这个过程带来数据,但不知道我的代码中缺少什么,因为它没有给我带来任何数据。以下是两者的代码:
甲骨文程序:
PROCEDURE P_TRANSFITENS(vID in NUMBER) is
cursor vAUX is
select t.pro_in_codigo,
t.alm_in_codigo,
t.loc_in_codigo,
u.loc_st_nome,
t.nat_st_codigo,
t.mvs_re_quantidade,
t.mvs_st_loteforne
from bd.est_movsumarizado t, bd.est_almoxlocal u
where t.pro_in_codigo = vID
and u.loc_in_codigo = t.loc_in_codigo;
rDadosItem vAUX%ROWTYPE;
begin
open vAUX;
loop
fetch vAUX
into rDadosItem;
exit when vAUX%NOTFOUND;
end loop;
close vAUX;
end;
C#(按钮单击处理程序):
OracleDataAdapter adp = new OracleDataAdapter();
OracleConnection objConn = new OracleConnection();
objConn.ConnectionString = "Data Source=dtsource;User Id=user;Password=pass";
objConn.Open();
adp.SelectCommand = new OracleCommand();
adp.SelectCommand.Connection = objConn;
adp.SelectCommand.CommandText = "P_TRANSFITENS";
adp.SelectCommand.CommandType = System.Data.CommandType.StoredProcedure;
adp.SelectCommand.Parameters.Add("@vID", Convert.ToInt32(mskdId.Text));
DataTable dt = new DataTable();
adp.Fill(dt);
dtgrvDetalhesItem.DataSource = dt;
非常感谢!
PS:对不起我的英语不好。