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 ...
随机推荐
- .CHM文件使用问题
1.查看时内容为空---解除锁定 解决方案:选中xx.CHM,右键点击属性,常规选项卡中点击“解除锁定”.OK了 2.内容显示乱码---修改浏览器编码 IE中的查看 > 编码 > 自动选择 ...
- 深入了解java虚拟机(JVM) 第五章 如何判断对象为垃圾对象
本章开始学习垃圾回收的过程,垃圾回收的过程首先就是要确定对象是否是垃圾对象,如果是垃圾对象,垃圾回收器才会进行回收.垃圾回收主要又两种算法:引用计数算法和可达性分析算法. 一.引用计数算法 引用计数算 ...
- Echart自定义y轴刻度信息2
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 接口测试:添加cookie以及身份验证
添加cookie以及身份验证的接口文档: cookie:存放在本地的一个键值对 session:存放在服务端的一个键值对 学生金币充值接口文档: 一.使用postman进行测试 由于进行学生金币充值操 ...
- 重载<<运算符第二个参数必须加上const
如题,在重载<<时不停的报错,说找不到匹配的函数,仔细观察和书上的样例对比后发现,我的第二个参数缺少了一个const,抱着试一试的心态,因为平时也没注意const这个东西,也不经常用,试了 ...
- flask内置函数 send_static_file(filename)
内部使用的函数将静态文件从静态文件夹发送到浏览器. current_app.send_static_file(filename)
- 【Leetcode】Binary Tree Traversal
把三个二叉树遍历的题放在一起了. 递归写法太简单,就不再实现了,每题实现了两种非递归算法. 一种是利用栈,时间和空间复杂度都是O(n). 另一种是借助线索二叉树,也叫Morris遍历,充分利用树中节点 ...
- 趣味测试类微信小程序
先说说项目需求吧, l 点击[再测一次],重新开始测试流程,主持人回复第一个题目,流程同上:答完全部题目后,底部不显示[立即开始分析]按钮,而是直接展示结果,且上一次测试内容不清空:如退出再进来,则 ...
- 接口自动化之unittest+ddt
我在上一篇(https://www.cnblogs.com/wlyhy/p/10083318.html) 文章整理了unittest的模板,但在后续学习中,发现还有许多值得优化的地方.例如在我们设计测 ...
- Excel2007使用SQL语句
Excel2007使用SQL语句 假如金三导出表格如下:[入库查询dddd.xls] 第1步 第2步 第3步 找到[入库查询dddd.xls] 比如 SELECT 纳税人名称, sum(实缴金额) F ...