//Comm.CommandText = "p_Checked"; 这里的 p_Checked 是怎么写的
oracle调用select的过程跟sql server是不一样的需要定义个个package创建一个包,含有一个游标类型给一个demo
------------------
在 Oracle 中,请按以下步骤操作:(1)创建一个包,含有一个游标类型:(一个数据库中只需作一次)CREATE OR REPLACE PACKAGE Test
AS
TYPE Test_CURSOR IS REF CURSOR;
END Test;(2)过程:CREATE OR REPLACE PROCEDURE GetCategoryBooks
(
p_CURSOR out Test.Test_CURSOR, -- 这里是上面包中的类型,输出参数
p_CatogoryID INTEGER
)
AS
BEGIN
OPEN p_CURSOR FOR
SELECT * FROM Books
WHERE CategoryID=p_CatogoryID;
END GetCategoryBooks;(3).NET 程序中:OracleParameters parameters = {
new OracleParameter("p_CURSOR", OracleType.CURSOR, 2000, ParameterDirection.Output, true, 0, 0, "",
DataRowVersion.Default, Convert.DBNull),
new OracleParameter("p_CatogoryID", OracleType.Int32)
};parameters[1].Value = 22;OracleConnection connection = new OracleConnection( ConnectionString );
OracleCommand command = new OracleCommand("GetCategoryBooks", connection);
command.CommandType = CommandType.StoredProcedure;foreach(OracleParameter parameter in parameters)
command.Parameters.Add( parameter );connection.Open();
OracleDataReader dr = command.ExecuteReader();while(dr.Read())
{
// 你的具体操作。这个就不需要我教吧?
}
connection.Close();
oracle调用select的过程跟sql server是不一样的需要定义个个package创建一个包,含有一个游标类型给一个demo
------------------
在 Oracle 中,请按以下步骤操作:(1)创建一个包,含有一个游标类型:(一个数据库中只需作一次)CREATE OR REPLACE PACKAGE Test
AS
TYPE Test_CURSOR IS REF CURSOR;
END Test;(2)过程:CREATE OR REPLACE PROCEDURE GetCategoryBooks
(
p_CURSOR out Test.Test_CURSOR, -- 这里是上面包中的类型,输出参数
p_CatogoryID INTEGER
)
AS
BEGIN
OPEN p_CURSOR FOR
SELECT * FROM Books
WHERE CategoryID=p_CatogoryID;
END GetCategoryBooks;(3).NET 程序中:OracleParameters parameters = {
new OracleParameter("p_CURSOR", OracleType.CURSOR, 2000, ParameterDirection.Output, true, 0, 0, "",
DataRowVersion.Default, Convert.DBNull),
new OracleParameter("p_CatogoryID", OracleType.Int32)
};parameters[1].Value = 22;OracleConnection connection = new OracleConnection( ConnectionString );
OracleCommand command = new OracleCommand("GetCategoryBooks", connection);
command.CommandType = CommandType.StoredProcedure;foreach(OracleParameter parameter in parameters)
command.Parameters.Add( parameter );connection.Open();
OracleDataReader dr = command.ExecuteReader();while(dr.Read())
{
// 你的具体操作。这个就不需要我教吧?
}
connection.Close();
------------------------------------------------------------------------------
System.Data.OracleClient.OracleConnection Conn = new System.Data.OracleClient.OracleConnection();
Conn.ConnectionString = "Data Source=japee;user=zhuser;password=1";
Conn.Open(); System.Data.OracleClient.OracleCommand Comm = new System.Data.OracleClient.OracleCommand();
Comm.Connection = Conn;
Comm.CommandType = CommandType.StoredProcedure;
Comm.CommandText = "p_Checked"; OracleParameter parameter1 = new OracleParameter("p_ID",System.Data.OracleClient.OracleType.VarChar,20,ParameterDirection.Input,true,0,0,"",DataRowVersion.Default,UID);
OracleParameter parameter2 = new OracleParameter("p_UPass",System.Data.OracleClient.OracleType.VarChar,20,ParameterDirection.Input,true,0,0,"",DataRowVersion.Default,UPass);
OracleParameter parameter3 = new OracleParameter("v_cursor",System.Data.OracleClient.OracleType.Cursor,0,ParameterDirection.Output,true,0,0,"",DataRowVersion.Default,Convert.DBNull); Comm.Parameters.Add(parameter1);
Comm.Parameters.Add(parameter2);
Comm.Parameters.Add(parameter3);