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 ...
随机推荐
- 三个数组求中位数,并且求最后中位数的中位数-----C++算法实现
文件Median.h #include <list> class CMedian { public: explicit CMedian(); virtual ~CMedian(); voi ...
- IO模型《七》selectors模块
一 了解select,poll,epoll IO复用:为了解释这个名词,首先来理解下复用这个概念,复用也就是共用的意思,这样理解还是有些抽象, 为此,咱们来理解下复用在通信领域的使用,在通信领域中为了 ...
- THUSC2017酱油记
啊..酱油记三连发.. 果然SHTSC用掉太多RP了.. 其实感觉没什么好写的..都被考懵逼了.. 但还是写一下吧.. DAY0 月考完提前一天到了..什么也没发生 DAY1 先考试再开幕式..好奇怪 ...
- CentOS 6.5 BCM43142 80211无线网卡驱动安装
https://blog.csdn.net/lisonglisonglisong/article/details/74859545 https://blog.csdn.net/shile/articl ...
- Swift和Objective C关于字符串的一个小特性
一.Unicode的一个小特性 首先,Unicode规定了许多code point,每一个code point表示一个字符.如\u0033表示字符"3",\u864e表示字符&qu ...
- UIScreen和UIWindow
UIScreen 和UIWindow UIScreen object defines the properties associated with a hardware-based display 就 ...
- 2019.2.15 t3 平均值
#include <cstdio> #include <iostream> #include <cstring> #include <cmath> #i ...
- luogu4383 [八省联考2018]林克卡特树(带权二分+dp)
link 题目大意:给定你 n 个点的一棵树 (边有边权,边权有正负) 你需要移除 k 条边,并连接 k 条权值为 0 的边,使得连接之后树的直径最大 题解: 根据 [POI2015]MOD 那道题, ...
- js数组的常用操作
数组合并 var arr=[1,"abc","张三","122"]; var b=["今天天气不错","适合学 ...
- 题目1010:A + B(字符串拆分)
问题来源 http://ac.jobdu.com/problem.php?pid=1010 问题描述 给我们一行标准的字符串,整行读入之后,把它拆开转换成数字进行计算. 问题分析 首先考虑一个问题:如 ...