注:OracleConnection和OracleCommand已被标注为[弃用的],可以使用System.Data.OleDb.OleDbConnection代替OracleCOnnection,使用System.Data.OleDb.OleDbCommand代替OracleCommand,并在连接字符串中的ConnectionString属性里增加"Provider=OraOLEDB.Oracle;"。

首先是在Oracle数据库中创建表:

Create Table Student(
S_ID VARCHAR2(40) default sys_guid() primary key,
STUDENT_ID CHAR(12),
STUDENT_Name VARCHAR2(20),
STUDENT_AGE VARCHAR2(10),
STUDENT_SEX VARCHAR2(10)
)

接着在配置文件中加入Oracle连接字符串:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
  <!--使用OleDbConnection时用该连接字符串-->
    <!--<add name="DeviceDBConnection" connectionString="Provider=OraOLEDB.Oracle;User ID=JPVDS;Password=JPVDS_2015;Data Source=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST=16.130.2.14)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=myorcl)))"
         providerName="System.Data.OracleClient"/>-->
<add name="DefaultDBConnection" connectionString="User ID=JPVDS;Password=JPVDS_2015;Data Source=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST=16.130.2.14)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=myorcl)))"
providerName="System.Data.OracleClient"/>
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>

然后是读取配置文件,连接数据库,进行增删改查操作,本人比较懒,直接贴代码了。

public class Program
{
//读取数据库连接字符串
string OracleStr = ConfigurationManager.ConnectionStrings["DefaultDBConnection"].ToString();
OracleConnection conn; /// <summary>
/// 连接数据库
/// </summary>
/// <param name="oracleStr">数据库连接字符串</param>
/// <returns></returns>
public OracleConnection ConnectionDB(string oracleStr)
{
OracleConnection conn = null;
try
{
conn = new OracleConnection(OracleStr);
//打开数据库
conn.Open();
}
catch (Exception ex)
{ }
return conn;
} /// <summary>
/// 插入操作
/// </summary>
/// <param name="student">需要插入的对象</param>
public void Insert(Student student)
{
string insertSqlStr = "insert into Student(Student_Id, Student_Name, Student_Age, Student_Sex)values(:Student_Id,:Student_Name,:Student_Age,:Student_Sex)";
try
{
OracleCommand cmd = new OracleCommand(insertSqlStr, conn);
cmd.Parameters.AddWithValue("Student_Id", student.student_Id);
cmd.Parameters.AddWithValue("Student_Name", student.student_Name);
cmd.Parameters.AddWithValue("Student_Age", student.student_Age);
cmd.Parameters.AddWithValue("Student_Sex", student.student_Sex);
cmd.ExecuteNonQuery();
Console.WriteLine(string.Format("添加{0}成功!", student.student_Name));
}
catch(Exception ex)
{
Console.WriteLine(string.Format("添加{0}失败!", student.student_Name));
}
} /// <summary>
/// 查询操作,查询全部内容
/// </summary>
/// <returns>返回学生列表</returns>
public List<Student> Query()
{
string querySqlStr = "select * from student";
List<Student> studentList = new List<Student>();
try
{
OracleCommand cmd = new OracleCommand(querySqlStr, conn);
using (var dr = cmd.ExecuteReader())
{
while (dr.Read())
{
Student student = new Student(dr.GetValue().ToString(), dr.GetValue().ToString(),
dr.GetValue().ToString(), dr.GetValue().ToString());
studentList.Add(student);
}
}
}
catch (Exception ex) { }
return studentList;
} /// <summary>
/// 操作
/// </summary>
public void operation()
{
conn = ConnectionDB(OracleStr);
Student student1 = new Student("", "", "", "男");
Student student2 = new Student("", "香蕉", "", "男");
Insert(student1);
Insert(student2);
List<Student> studentList = Query();
foreach(var student in studentList)
{
Console.WriteLine("~~~~~~~~~~~~~~~~");
Console.WriteLine(string.Format("学号:{0}",student.student_Id));
Console.WriteLine(string.Format("姓名:{0}",student.student_Name));
Console.WriteLine(string.Format("年龄:{0}",student.student_Age));
Console.WriteLine(string.Format("性别:{0}",student.student_Sex));
}
conn.Close();
} static void Main(string[] args)
{
Program program = new Program();
program.operation();
}
}

Student学生类

/// <summary>
/// 学生类
/// </summary>
public class Student
{
/// <summary>
/// ID
/// </summary>
public string id { get; set; } /// <summary>
/// 学生学号
/// </summary>
public string student_Id { get; set; } /// <summary>
/// 学生姓名
/// </summary>
public string student_Name { get; set; } /// <summary>
/// 学生年龄
/// </summary>
public string student_Age { get; set; } /// <summary>
/// 学生性别
/// </summary>
public string student_Sex { get; set; } public Student() { } public Student(string s_Id,string s_Name,string s_Age,string s_Sex)
{
this.student_Id = s_Id;
this.student_Name = s_Name;
this.student_Age = s_Age;
this.student_Sex = s_Sex;
}
}

C# 连接Oracle,进行查询,插入操作的更多相关文章

  1. C#连接Oracle数据库查询数据

    C#连接Oracle数据库可以实现许多我们需要的功能,下面介绍的是C#连接Oracle数据库查询数据的方法,如果您对C#连接Oracle数据库方面感兴趣的话,不妨一看. using System; u ...

  2. Python连接Oracle数据查询导出结果

    python连接oracle,需用用到模块cx_oracle,可以直接pip安装,如网络不好,可下载离线后本地安装 cx_oracle项目地址:https://pypi.org/project/cx_ ...

  3. springmvc+mybatis+redis实现查询插入操作

    最近在学习redis,虽然现在还不是很熟练.不过可以进行简单的框架整合开发. IDE:我使用的是IDEA.springmvc+spring+mybatis的整合这个我就不多说了,下面我们先进行这块的整 ...

  4. Java通过JDBC连接Oracle之后查询结果和在sqlplus查询结果不一样

    问题描述: 在sqlplus 下 orcl数据库中创建一张表后,使用insert语句插入几条数据 然后用java查询数据,发现在终端中输出的结果和在sqlplus中查询结果不一样. 在sqlplus中 ...

  5. C#连接oracle 数据库查询时输入中文查询不出来,用plsql就可以

    查询语句为:select * from Per where khmc like '%李%',其实是字符集的问题. 解决方案:在连接字符串加一个“Unicode=True;”

  6. Oracle 数据库中日期时间的插入操作

    Oracle 中如何插入日期时间类型的数据,首先为了演示, 新建数据表如下 create table t( mydate date); 插入日期时间 SQL> insert into t val ...

  7. python中的MySQL数据库操作 连接 插入 查询 更新 操作

    MySQL数据库 就数据库而言,连接之后就要对其操作.但是,目前那个名字叫做qiwsirtest的数据仅仅是空架子,没有什么可操作的,要操作它,就必须在里面建立“表”,什么是数据库的表呢?下面摘抄自维 ...

  8. linux shell脚本连接oracle查询数据插入文件和日志文件中

    #!/bin/sh sqlplus "用户名/密码@数据库"<<EOF  或者只有一个库的 :sqlplus "用户名/密码"<<EOF ...

  9. ORACLE查询当前连接的用户信息及操作的SQL语句

    ORACLE--查询当前连接的用户信息及操作的SQL语句    select sid,      status,      v$session.username 用户名,      last_call ...

随机推荐

  1. day02.5-集合内置方法

    集合——set的定义:test = {1,2,3,4,5} 或 test = frozenset(1,2,3,4,5) 特点:1. 集合是可变数据类型 2. 集合中元素是无序的,可以是数字.字符串与元 ...

  2. [ActionScript 3.0] 常用的正则表达式

    as 3.0常用的正则表达式: /* * 去除字符串前面的空格和跳格符 */ var src:String=" Hello! "; trace(src); //原文本 trace( ...

  3. Ehcache和MemCached区别及应用

    ehcache是纯Java编写的,通信是通过RMI方式,适用于基于java技术的项目.memcached服务器端是c编写的,客户端有多个语言的实现,如c,PHP(淘宝,sina等各大门户网站),Pyt ...

  4. Maven依赖的JAR包下载慢?赶紧看过来

    相信许多JAVA开发者在日常工作中时常会碰到这种情况,那就是编译Maven工程时,工程所依赖的jar包文件下载非常慢,甚至经常出现下载不成功的问题,今天,小编就给大家讲讲如何提升Maven依赖包的下载 ...

  5. Lecture notes of Mathematical analysis

    Lecture notes of Mathematical analysis Preliminary theory Teaching purpose: Mathematical analysis is ...

  6. Oracle PL/SQL学习之Hello World(0)

    1.PL/SQL是Oracle数据库的一大创举,让一些复杂繁琐的常规主流编程代码做的编码处理过程,只需要在PL/SQL中使用简短的几句代码就可以解决,并且准确高效.那么遵循惯例,我们学习PL/SQL编 ...

  7. App功能测试的注意点

    好几个月没有写博客记录学习心得了,这次回老家深夜闲来无事写一篇记录下这段时间的面试心得,这次面试过程很多面试官都问APP的有关测试,下面我就自己的认识和工作中的经验来谈谈自己对APP测试的认识: 1. ...

  8. python 接口(抽象) 多态,鸭子类型, 多继承原理(mro)

    抽象类与接口类 接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数 ...

  9. 本地DataGrip连接阿里云MySQL

    1.阿里云上开通MySQL端口 2.MySQL上的设置 1⃣️mysql -uroot -p2⃣️create user 'usrabc'@'%' identified by 'usrabc'; 3. ...

  10. Devexpress中统一设置字体样式的方法

    #region 设置默认字体.日期格式.汉化dev DevExpress.Utils.AppearanceObject.DefaultFont = new System.Drawing.Font(&q ...