c# oracle 通讯

小傻瓜的学习笔记

第一步:安装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#开头,不然会报错)

授予这个用户权限

  1. 授予用户登录数据库权限
grant create session to c#test;

其中c#test指的是刚刚创建的账户名

  1. 授予用户创建表权限
grant create table to c#test;
  1. 授予用户在其他表空间随意建表
grant unlimited tablespace to c#test;

做完这些最好提交一下

commit;

登录普通用户

  1. 直接登录
    在这里插入图片描述
connect c#test;
  1. 从头登录
    在这里插入图片描述

创建表

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)。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值