小傻瓜的学习笔记
第一步:安装oracle
官网下载
网址:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#19c
安装
解压之后找到这个setup.exe,打开开始安装
因为我的电脑已经安装过了,所以没有相应的图示。
安装过程中的选项基本没有什么关系,唯一重要的是设定自己oracle账户的密码。
最后安装等待时间可能会有点长,其中会有一长段时间卡在40左右的地方,请耐心等待
第二步:测试oracle
在你的电脑中找到sqlplus
以管理员身份登录
用户名:conn /as sysdba
(这个用户名的含义是 以管理员的身份登录)
密码是你刚刚设置的密码(不回显)
创建一个普通用户
create user c#test identified by test;
这句话中①处代表的是用户的用户名,②处代表的是这个用户的密码
(在某些机器上用户名必须以c#开头,不然会报错)
授予这个用户权限
- 授予用户登录数据库权限
grant create session to c#test;
其中c#test指的是刚刚创建的账户名
- 授予用户创建表权限
grant create table to c#test;
- 授予用户在其他表空间随意建表
grant unlimited tablespace to c#test;
做完这些最好提交一下
commit;
登录普通用户
- 直接登录
connect c#test;
- 从头登录
创建表
create table teacher(name varchar(20));
为表添加第一个元素
insert into teacher values('dannyXSC');
查看表中内容
select * from teacher;
有这样的内容就基本上成功配置了oracle,接下来我们就要使用vs来与oracle交互
第三部:vs配置
安装vs
默认大家都装了,并安装了c#插件
打开c#项目
语言选中c#,往下翻,找到这个框架(注意是控制台应用,且后面有.net framework)
下面细节默认大家都懂。
安装oracle插件
右击引用,点击管理nuget程序包
点击浏览,输入oracle,第一个就是我们需要的插件,点击下载即可
ok,环境的配置到这里就结束了,下面就是测试交互了。
第四步:测试交互
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using Oracle.ManagedDataAccess.Client;
using System.Data;
using System.IO;
using System.Collections;
using System.Diagnostics;
using Oracle.ManagedDataAccess.Types;
namespace OracleDemo
{
public class OracleHelper
{
private static string connStr = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST='127.0.0.1')(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)));Persist Security Info=True;User ID=c#t;Password=test;";
#region 执行SQL语句,返回受影响行数
public static int ExecuteNonQuery(string sql, params OracleParameter[] parameters)
{
using (OracleConnection conn = new OracleConnection(connStr))
{
conn.Open();
using (OracleCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteNonQuery();
}
}
}
#endregion
#region 执行SQL语句,返回DataTable;只用来执行查询结果比较少的情况
public static DataTable ExecuteDataTable(string sql, params OracleParameter[] parameters)
{
using (OracleConnection conn = new OracleConnection(connStr))
{
conn.Open();
using (OracleCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameters);
OracleDataAdapter adapter = new OracleDataAdapter(cmd);
DataTable datatable = new DataTable();
adapter.Fill(datatable);
return datatable;
}
}
}
#endregion
public static void Main(string[] args)
{
string sqlString = "select * from teacher";
DataTable dt = OracleHelper.ExecuteDataTable(sqlString, new OracleParameter());
//int row = OracleHelper.ExecuteNonQuery(sqlString, new OracleParameter());
foreach(DataRow dr in dt.Rows)
{
Console.WriteLine(string.Format("{0}",dr["name"]));
}
}
}
}
如果你刚刚的过程是跟我做的一模一样的,那你应该能够直接正常运行。
不过我还是来稍微介绍一下这里代码的含义。
连接
代码里的connStr包含了数据库所需要的连接信息
①表示数据库的ip地址,127.0.0.1表示本地ip,如果你的数据库在服务器上,可以改成你的服务器的ip。后面的port是对应端口。(不搞幺蛾子的话应该不用更改)
②表示你的数据库的名字,一般默认是orcl,你也可以通过下列方式获得你的数据库名。
以管理员方式登录数据库
即
用户名为 conn /as sysdba
密码为下载时你输入的密码
然后输入
show parameter service;
value的值就是你的数据库的service_name,你把这里对应的值填入②中“=”后面
③user id后面的是你的账户名,password后面的是你的密码,输入即可(一般用你新创建账户的账号密码,非管理员)
修改sql语句
这里的sqlString就是你要对数据库输入的sql语句了。注意不要加分号
之后的输出语句中,dt实际上是oracle返回的数据库类,我设置的dr变量是筛选出来的一行(一个元组),你可以通过加括号再填入属性值(列名)获得值。
例如我这里的dr[“name”]就是获得每行中name这属性的值
这是我的效果
结语
好了,这就是最基本的c#与oracle交互的方式,有什么不清楚的也可以来问我(如果你知道我是谁的话hhh)。