C# winform调用oracle函数返回游标?

lzzyok 2009-10-13 10:55:10
请问一下,C# winform中通过OleDbCommand,怎么调用oracle返回游标类型的函数?急!!!

...全文
546 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzzyok 2009-10-27
  • 打赏
  • 举报
回复
终于解决

using (OleDbConnection oracleConn = new OleDbConnection(this.getURL()))
{
// open connection
try { oracleConn.Open(); }
catch { throw new Exception(); }
// build command
OleDbCommand cmd = new OleDbCommand("{call fn_getcorp(?)}", oracleConn);
cmd.CommandType = CommandType.Text;
// add parameters
cmd.Parameters.Add("vsguid", OleDbType.VarChar).Value = "5BDBB7B538034877B0AAD2E0F9B28DF7";
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
// fill dataset
DataSet ds = new DataSet();
da.Fill(ds);
return ds.Tables[0].Rows.Count.ToString();
// all done, return
// return ds;
}
lzzyok 2009-10-26
  • 打赏
  • 举报
回复
根据上面代码改过的,还是不行。
public string getByPD(string pdName, string[] values)
{
string temp = null;
try
{
OleDbCommand cmd = new OleDbCommand();
OleDbTransaction tran = con.BeginTransaction();
cmd.Transaction = tran;

cmd.Connection = con;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = pdName;

OleDbDataAdapter oda = new OleDbDataAdapter();
cmd.Parameters.Add(new OleDbParameter("?", OracleType.Cursor));
cmd.Parameters[0].Direction = ParameterDirection.Output;//注册返回参数



oda.SelectCommand = cmd;
DataSet ds = new DataSet();
oda.Fill(ds);
tran.Commit();
}
catch (Exception e)
{
throw e;
}
return temp;
}
reborn_seth 2009-10-13
  • 打赏
  • 举报
回复
基本一样 自己试试就行了 没有几个人 会有时间给你写现成的代码的
lzzyok 2009-10-13
  • 打赏
  • 举报
回复
1楼大哥,先谢谢了,不过你用的是sqlcommand,可是我要用的是oledbcommand.对应不一样.
reborn_seth 2009-10-13
  • 打赏
  • 举报
回复
/// <summary>
/// 执行带参数的存储过程返回数据集
/// </summary>
/// <param name="StoreName">过程名称</param>
/// <param name="ParamsName">参数名称列表</param>
/// <param name="ParamsValue">参数值列表</param>
/// <returns>返回的数据集</returns>
public DataSet exeProc_ReDs(string StoreName, string[] ParamsName, object[] ParamsValue)
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = this.conn;
if (inTran)
{
cmd.Transaction = sqlTran;
}

if ((ParamsName != null) && (ParamsName.Length != ParamsValue.Length))
{
throw new System.Exception("参数和值不对应!");
}

cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = StoreName;

if (ParamsName != null)
{
SqlParameter OraParams;
for (int i = 0; i < ParamsName.Length; i++)
{
OraParams = new SqlParameter(ParamsName[i], ParamsValue[i]);
cmd.Parameters.Add(OraParams);
}

}

DataSet ds = new DataSet();
using (SqlDataAdapter ad = new SqlDataAdapter())
{
ad.SelectCommand = cmd;
ad.Fill(ds);
}
return ds;
}
}

110,578

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧