-----储存过程
create or replace procedure poc_selectallbooks
as
type c_book is ref cursor;
mybook c_book;
begin
open mybook for
select * from books;
close mybook;
end;
--------------------------------------------------------------------------
IDAL.IBook dal = DataAccess.CreateBook();
public IList<Model.BOOKS> getallbooks()
{
return dal.getallbooks();
}
--------------------------------------------------------------------------
public IList<Model.BOOKS> getallbooks()
{
//string sql = "select * from books";
//return CommonAllbooks(sql);
OracleParameter[] para = { };
ds = DbHelperOra.RunProcedure("poc_selectallbooks", para, "ds");
return CommonAllbooks(); }
private IList<Model.BOOKS> CommonAllbooks(){
//private IList<Model.BOOKS> CommonAllbooks(string sql) { IList<Model.BOOKS> list = new List<Model.BOOKS>();
//DataSet ds = DbHelperOra.Query(sql, para);
foreach (DataRow row in ds.Tables[0].Rows)---无法找到表 0。 {
Model.BOOKS book = new Model.BOOKS();
if (row["BOOKS_ID"] != null && row["BOOKS_ID"].ToString() != "")
{
book.BOOKS_ID = int.Parse(row["BOOKS_ID"].ToString());
}
if (row["BOOKS_NAME"] != null && row["BOOKS_NAME"].ToString() != "")
{
book.BOOKS_NAME = row["BOOKS_NAME"].ToString();
}
if (row["PRICE"] != null && row["PRICE"].ToString() != "")
{
book.PRICE = int.Parse(row["PRICE"].ToString());
}
if (row["QTY"] != null && row["QTY"].ToString() != "")
{
book.QTY = int.Parse(row["QTY"].ToString());
}
if (row["PUB"] != null && row["PUB"].ToString() != "")
{
book.PUB = row["PUB"].ToString();
} list.Add(book);
}
return list;
}
------------------------------
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="storedProcName">存储过程名</param>
/// <param name="parameters">存储过程参数</param>
/// <param name="tableName">DataSet结果中的表名</param>
/// <returns>DataSet</returns>
public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName )
{
using (OracleConnection connection = new OracleConnection(connectionString))
{
DataSet dataSet = new DataSet();
connection.Open();
OracleDataAdapter sqlDA = new OracleDataAdapter();
sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters );
sqlDA.Fill( dataSet, tableName );
connection.Close();
return dataSet;
}
}
create or replace procedure poc_selectallbooks
as
type c_book is ref cursor;
mybook c_book;
begin
open mybook for
select * from books;
close mybook;
end;
--------------------------------------------------------------------------
IDAL.IBook dal = DataAccess.CreateBook();
public IList<Model.BOOKS> getallbooks()
{
return dal.getallbooks();
}
--------------------------------------------------------------------------
public IList<Model.BOOKS> getallbooks()
{
//string sql = "select * from books";
//return CommonAllbooks(sql);
OracleParameter[] para = { };
ds = DbHelperOra.RunProcedure("poc_selectallbooks", para, "ds");
return CommonAllbooks(); }
private IList<Model.BOOKS> CommonAllbooks(){
//private IList<Model.BOOKS> CommonAllbooks(string sql) { IList<Model.BOOKS> list = new List<Model.BOOKS>();
//DataSet ds = DbHelperOra.Query(sql, para);
foreach (DataRow row in ds.Tables[0].Rows)---无法找到表 0。 {
Model.BOOKS book = new Model.BOOKS();
if (row["BOOKS_ID"] != null && row["BOOKS_ID"].ToString() != "")
{
book.BOOKS_ID = int.Parse(row["BOOKS_ID"].ToString());
}
if (row["BOOKS_NAME"] != null && row["BOOKS_NAME"].ToString() != "")
{
book.BOOKS_NAME = row["BOOKS_NAME"].ToString();
}
if (row["PRICE"] != null && row["PRICE"].ToString() != "")
{
book.PRICE = int.Parse(row["PRICE"].ToString());
}
if (row["QTY"] != null && row["QTY"].ToString() != "")
{
book.QTY = int.Parse(row["QTY"].ToString());
}
if (row["PUB"] != null && row["PUB"].ToString() != "")
{
book.PUB = row["PUB"].ToString();
} list.Add(book);
}
return list;
}
------------------------------
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="storedProcName">存储过程名</param>
/// <param name="parameters">存储过程参数</param>
/// <param name="tableName">DataSet结果中的表名</param>
/// <returns>DataSet</returns>
public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName )
{
using (OracleConnection connection = new OracleConnection(connectionString))
{
DataSet dataSet = new DataSet();
connection.Open();
OracleDataAdapter sqlDA = new OracleDataAdapter();
sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters );
sqlDA.Fill( dataSet, tableName );
connection.Close();
return dataSet;
}
}
有表呀,没用储存过程,能查出表中记录.用储存过程查询
此 报错(foreach (DataRow row in ds.Tables[0].Rows)---无法找到表 0。)create or replace procedure poc_selectallbooks
as
type c_book is ref cursor;
mybook c_book;
begin
open mybook for
select * from books;
close mybook;
end;
过程有问题?
不就是从books表中取全部数据嘛,怎么你的存储过程搞这么多东西,给你简化一下create procedure poc_selectallbooks
as
select * from books;