C# 连接Oracle,进行查询,插入操作
注: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,进行查询,插入操作的更多相关文章
- C#连接Oracle数据库查询数据
C#连接Oracle数据库可以实现许多我们需要的功能,下面介绍的是C#连接Oracle数据库查询数据的方法,如果您对C#连接Oracle数据库方面感兴趣的话,不妨一看. using System; u ...
- Python连接Oracle数据查询导出结果
python连接oracle,需用用到模块cx_oracle,可以直接pip安装,如网络不好,可下载离线后本地安装 cx_oracle项目地址:https://pypi.org/project/cx_ ...
- springmvc+mybatis+redis实现查询插入操作
最近在学习redis,虽然现在还不是很熟练.不过可以进行简单的框架整合开发. IDE:我使用的是IDEA.springmvc+spring+mybatis的整合这个我就不多说了,下面我们先进行这块的整 ...
- Java通过JDBC连接Oracle之后查询结果和在sqlplus查询结果不一样
问题描述: 在sqlplus 下 orcl数据库中创建一张表后,使用insert语句插入几条数据 然后用java查询数据,发现在终端中输出的结果和在sqlplus中查询结果不一样. 在sqlplus中 ...
- C#连接oracle 数据库查询时输入中文查询不出来,用plsql就可以
查询语句为:select * from Per where khmc like '%李%',其实是字符集的问题. 解决方案:在连接字符串加一个“Unicode=True;”
- Oracle 数据库中日期时间的插入操作
Oracle 中如何插入日期时间类型的数据,首先为了演示, 新建数据表如下 create table t( mydate date); 插入日期时间 SQL> insert into t val ...
- python中的MySQL数据库操作 连接 插入 查询 更新 操作
MySQL数据库 就数据库而言,连接之后就要对其操作.但是,目前那个名字叫做qiwsirtest的数据仅仅是空架子,没有什么可操作的,要操作它,就必须在里面建立“表”,什么是数据库的表呢?下面摘抄自维 ...
- linux shell脚本连接oracle查询数据插入文件和日志文件中
#!/bin/sh sqlplus "用户名/密码@数据库"<<EOF 或者只有一个库的 :sqlplus "用户名/密码"<<EOF ...
- ORACLE查询当前连接的用户信息及操作的SQL语句
ORACLE--查询当前连接的用户信息及操作的SQL语句 select sid, status, v$session.username 用户名, last_call ...
随机推荐
- 16、xtrabackup 增量备份及恢复
备份命令如下 备份命令如下 全量备份 # innobackupex -p123123 /backup # ls /backup 2017-04-08_13-36-11 增量备份或差量备份 # inn ...
- “全栈2019”Java第十二章:变量
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 四,Smarty模板技术/引擎-----内建函数
内建函数是smarty提供的函数,不允许修改,只能被调用: 自定义函数是自己编写函数,注册成为smarty的函数,之后可以被调用. PHP的自建函数很多,讲解下<foreach>和< ...
- Python2和Python3共存,pip共存
使用python开发,环境有Python2和 python3 两种,有时候需要两种环境切换使用,下面提供详细教程一份. 1.下载python3和python2 进入python官网,链接https:/ ...
- 检查java 中有多少个构造函数
检查函数中有多少个构造函数 程序设计思想: 用while来循环,并设置一个布尔类型变量c,当c是true是继续添加构造函数,当c是false是,跳出循环,程序结束.在循环体中,声明一个计数的int型变 ...
- Vs.net 常用命令行
下面的是从 devenv /? 看到的 用法: devenv [解决方案文件 | 项目文件 | 任意文件.扩展名] [开关] devenv 的第一个参数通常是一个解决方案文件或项目文件. 如果 ...
- (C/C++) CRC8計算實現
CRC計算通常會有分成 CRC8. CRC16. CRC12. CRC32. CRC8 = X^8 + X^2 + X + 1 0x07(0x107) CRC8 = X^8 + X^5 + X^ ...
- 从零开始完整搭建 Spring-Boot 项目开发框架的教程
前言 难度:简单 类型:step-by-step 适用:初学者,完全没有接触过 Spring-Boot 开发环境:jdk 1.8 关键词:java, sring-boot, spring-mvc, r ...
- [软件工程]项目选择与NABCD模型分析
项目 内容 这个作业属于哪个课程 2019春季计算机学院软件工程(罗杰) 这个作业的要求在哪里 团队项目选择 这课程的目标是 以实践形式熟悉软件开发流程,团队开发,合作学习 本次作业对课程的帮助是 确 ...
- 【杂记】linux下各种软件安装方法(持续记录)
1.安装jdk: 网上一堆说先从windows下压缩包,然后通过共享文件夹copy到linux系统里,然后解压安装,emmmmm 首先进入usr文件夹,新建java文件夹: mkdir java 直接 ...