Oracle数据库连接C#
Ø Oracle在c#中的一般查询
//Oracle中的一般查询
using(OracleConnection conn=newOracleConnection("server=.;uid=system;pwd=123456;datasource=orcl;"))
{
conn.Open();
stringsql= "select * from scott.emp";
OracleCommandcmd= new OracleCommand(sql,conn);
//读取数据
OracleDataReaderorcl=cmd.ExecuteReader();
//循环输出
while(orcl.Read())
{
Console.WriteLine("工作:"+orcl[1]+",工资:"+orcl[2]);
}
}
Console.ReadLine();
Ø Oracle创建存储过程
createorreplaceprocedure proc_orcl(pename nvarchar2,pjob outnvarchar2,psal outint)
is
begin
select job,sal into pjob,psal from scott.emp where ename=pename;
end;
在Oracle数据库里面调用存储过程:
declare pjob nvarchar2(64);
psal int;
begin
proc_orcl('SCOTT',pjob,psal);
dbms_output.put_line('工作:'||pjob||',工资'||psal);
end;
Ø 要在c#中使用Oracle步骤:
1. 引入命名空间前需要手动添加Oracle引用。
2. 需要引入命名空间:usingSystem.Data.OracleClient;
3. 打开服务器:OracleOraDb11g_home1TNSListener
4.在存储过程中的代码:
staticvoidMain(string[] args)
{
//接受需要查询的用户
Console.WriteLine("请输入您要查询的员工:");
stringename= Console.ReadLine();
//在c#中Oracle使用存储过程查询
using(OracleConnection conn = newOracleConnection("server=.;uid=system;pwd=123456;datasource=orcl;"))
{
conn.Open();
//提供存储过程的名称
OracleCommand cmd= new OracleCommand("proc_orcl", conn);
//设置查询为存储过程
cmd.CommandType= System.Data.CommandType.StoredProcedure;
//给存储过程提供参数(输入参数)
cmd.Parameters.Add(new OracleParameter("pename",ename));
//输出参数
OracleParameter pjob= new OracleParameter("pjob",OracleType.NVarChar,64);
pjob.Direction= System.Data.ParameterDirection.Output;
OracleParameter psal= new OracleParameter("psal", OracleType.Int32);
psal.Direction= System.Data.ParameterDirection.Output;
//添加存储过程输出参数的值
cmd.Parameters.Add(pjob);
cmd.Parameters.Add(psal);
//返回受影响的行数
int count=cmd.ExecuteNonQuery();
//输出值
Console.WriteLine("工作:"+pjob.Value+",工资:"+psal.Value);
}
Console.ReadLine();
}