c# 连接oracle 读取数据

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OracleClient;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace PDM {
    public partial class BaseInfo : Form {
        public BaseInfo() {
            InitializeComponent();
            this.tbxFilePath.Text = "d:/TestPicture/ln/";
            this.hash.Text = "d:/TestPicture/ln/";
            this.server.Text = "PDMFiles/FMSC/";
        }
        List<SpareBaseInfo> SpareBaseInfos = null;
        List<SpareBaseInfo> SpareBaseInfoDataBases = null;
        List<SpareBaseInfo> SpareBaseInfoisexist= null;

        StreamWriter sw = File.AppendText(Environment.CurrentDirectory + "\\SpareBaseInfoFile.txt");
      
        private void UpdateDataBase_Click(object sender, EventArgs e) {
            try {
                var updatesql = new StringBuilder();
                SpareBaseInfos = new List<SpareBaseInfo>();
                SpareBaseInfoDataBases = new List<SpareBaseInfo>();
                SpareBaseInfoisexist = new List<SpareBaseInfo>();
                foreach(var item in Directory.GetFiles(this.tbxFilePath.Text)) {
                    var extenname = Path.GetFileName(item);
                    var name = Path.GetFileNameWithoutExtension(item);
                    if(name.Contains("#")) {
                        string[] codename = name.Split(‘#‘);
                        SpareBaseInfo sbi = new SpareBaseInfo();
                        sbi.Code = codename[0].ToString();
                        sbi.Name = codename[1].ToString();
                        sbi.FilePath = this.server.Text + extenname;
                        if(!SpareBaseInfos.Contains(sbi)) {
                            SpareBaseInfos.Add(sbi);
                        }
                        updatesql.AppendLine("update SpareBaseInfo set FilePaths=‘" + server.Text + extenname + "‘" + "where code=‘" + sbi.Code + "‘ and name= ‘" + sbi.Name + "‘;");
                        if(!File.Exists(this.hash.Text + extenname.GetHashCode())) {
                            Directory.CreateDirectory(this.hash.Text + Math.Abs(extenname.GetHashCode()) % 1000);
                        }
                        File.Copy(item, this.hash.Text + Math.Abs(extenname.GetHashCode()) % 1000 + "/" + extenname);
                    }
                } 
                sw.Write(updatesql.ToString());
                MessageBox.Show("成功");
                sw.Close();

            } catch(Exception ex) {
                
                throw ex;
            }

            string sql = "select * from SpareBaseInfo where code in (";
            var Codes = SpareBaseInfos.Select(l => l.Code);
            foreach(var item in Codes) {
                sql += "‘" + item + "‘,";
            }
            if(!string.IsNullOrEmpty(sql)) {
                sql = sql.Remove(sql.Length - 1);
            }
            sql += ")";

            sql += "and name in(";
            var Names = SpareBaseInfos.Select(l => l.Name);
            foreach(var item in Names) {
                sql += "‘" + item + "‘,";
            }
            if(!string.IsNullOrEmpty(sql)) {
                sql = sql.Remove(sql.Length - 1);
            }
            sql += ")";
            string conn = "user id=mfepc;data source=" + server.Text + ";password=mfepc";
            OracleConnection cn = new OracleConnection(conn);
            cn.Open();//要打开连接   
            string strcmd = sql;
            OracleCommand cmd = new OracleCommand(strcmd, cn);
            OracleDataReader reader = cmd.ExecuteReader();
            try {
                while(reader.Read()) {
                    var a = reader[0].ToString();
                    SpareBaseInfo sbi = new SpareBaseInfo();
                    sbi.Id = Convert.ToInt32(reader["Id"].ToString());
                    sbi.Code = reader["Code"].ToString();
                    sbi.Name = reader["Name"].ToString();
                    if(!SpareBaseInfoDataBases.Contains(sbi)) {
                        SpareBaseInfoDataBases.Add(sbi);
                    }
                }
                dataGridView1.DataSource = SpareBaseInfoDataBases;
            } finally {
                reader.Close();
            }
            var updatesql = new StringBuilder();
            try {
                if(MessageBox.Show(SpareBaseInfoDataBases.Count() + "条数据是否继续", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes) {
                    updatesql.AppendLine("begin");
                    foreach(var item in SpareBaseInfoDataBases) {
                        item.FilePath = SpareBaseInfos.FirstOrDefault(l => l.Name == item.Name && l.Code == item.Code).FilePath;
                        updatesql.AppendLine("update SpareBaseInfo set FilePaths=‘" + item.FilePath + "‘" + "where code=‘" + item.Code + "‘ and name= ‘" + item.Name + "‘;");
                    }
                    updatesql.AppendLine("end;");
                    //OracleCommand cmdupdate = new OracleCommand(updatesql.ToString(), cn);
                    //cmdupdate.ExecuteNonQuery();
                    MessageBox.Show("成功");
                }

            } catch(Exception ecp) {
                throw ecp;
            }

            cn.Close();
        }
    }

    public class SpareBaseInfo {

        private int id;

        public int Id {
            get {
                return id;
            }
            set {
                id = value;
            }
        }

        private string code;

        public string Code {
            get {
                return code;
            }
            set {
                code = value;
            }
        }

        private string name;

        public string Name {
            get {
                return name;
            }
            set {
                name = value;
            }
        }

        private string filePath;

        public string FilePath {
            get {
                return filePath;
            }
            set {
                filePath = value;
            }
        }
        //通过DataSet来读取数据:

        //创建和数据库的连接192.168.17.42/epcv2
        //OracleConnection oraCon = new OracleConnection("user id=mfepc0521;data source=192.168.17.42/mfdmstest;password=mfepc0521");
        //OracleConnection oraCon = new OracleConnection("user id=mfepc;data source=192.168.17.42/epcv2;password=mfepc");
        //OracleDataAdapter oraDap = new OracleDataAdapter("select * from SpareBaseInfo where rownum<10", oraCon);
        //DataSet ds = new DataSet();
        //oraDap.Fill(ds);
        //DataTable _table = ds.Tables[0];
        //int count = _table.Rows.Count;
        //dataGridView1.DataSource = _table;
    }
}
时间: 2024-10-07 17:45:37

c# 连接oracle 读取数据的相关文章

连接oracle读取数据

没怎么用过oracle,而且是在地税内网内部估计是防火墙的原因虚拟机里也连不上oracle,刚开始费了很多周折查找问题,现在又放弃使用直连数据库了,记下来以备后用吧 public class LoadData { /// <summary> /// /// </summary> /// <returns></returns> public static string GetCunliangfang(string idNo) { string oraclePa

无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接

我们添加客户端服务引用的时候会出现这样的错误: 下载“http://localhost:8002/WCFService”时出错. 基础连接已经关闭: 接收时发生错误. 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接.. 远程主机强迫关闭了一个现有的连接. Metadata contains a reference that cannot be resolved: 'http://localhost:8002/WCFService'. Metadata contains a refe

linux centos6.8下 php连接redis读取数据间歇性502解决

nginx报错提示: *963623 recv() failed (104: Connection reset by peer) while reading response header from upstream .. php-fpm.log报错提示: WARNING: [pool www] child 10559 exited on signal 11 (SIGSEGV) after 0.504455 seconds from start .. 解决:(服务器出现502错误 可能进程过多导

关于云服务器中发送邮件,出现无法从传输连接中读取数据:

下次截图... 阿里云25端口需要申请,如果申请的话就没下面这些麻烦!!! 总之我就出现了这个错误. 如何一直都在解决这个问题 弄了一晚上,总结出了几个解决方案 第一  开启阿里云25端口 然后右边就会看见了 然后就是你的骚操作了(总之我没这样弄,太麻烦了,再加上我没域名,只能舍弃这个方法) 第二,使用163邮箱,开启465 端口 smtpclient.Port = 465; 结果没用,还是上面那个错误 果断丢弃 第三  ,服务器关闭  防火墙,重启,在加465端口,阿里云 配置一下安全组 本以

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

C#连接Oracle数据库可以实现许多我们需要的功能,下面介绍的是C#连接Oracle数据库查询数据的方法,如果您对C#连接Oracle数据库方面感兴趣的话,不妨一看. using System; using System.Collections.Generic; using System.ComponentModel using System.Data.OracleClient;;//这行和下一行都要先在引用中填加system.data.oracleclient using System.Da

Oracle中读取数据一些原理研究

文章很多摘录了 http://blog.163.com/[email protected]/blog/static/7956964020131069843572/ 同时基于这篇文章的基础上,补充一些学习要点,如有问题,希望指出探讨. 1 ORACLE体系结构 下图描述了oracle的体系结构.SGA(system global area)是各个进程共享的内存块,Buffer cache用来缓存数据文件的数据块(block). 2 如何在data buffer中查找数据块 data buffer存

ACCESS通过一个连接写入的数据,另一个连接却读取不出来

最近在用c#实现一个数据导入的功能,将一个ACCESS数据库中的数据导入到另一个ACCESS的数据库中,然后显示出来,但是导入成功了,却显示不出来. 经过研究觉得应该是缓存的原因,由于我写入数据和读取数据使用的不是一个OleDbConnection对象,而是分别打开了两个OleDbConnection连接对象:一个连接写入成功了,但保存到磁盘还需要点时间,所以这个连接写入成功,另一个连接立即去取就会有取不到的情况! 改为使用一个连接对象,问题就解决了.

关于oracle数据库读取数据的三种方式

打开oracle sqldeveloper,连接到HR模式下的数据库,在SQL工作表中,执行如下语句: CREATE TABLE WANG( Name  varchar2(6), ID     number        ); 然后向表中插入如下语句: INSERT INTO WANG VALUES('WANG',1): INSERT INTO WANG VALUES('CHENG',2); INSERT INTO WANG VALUES('ZHOU',3); INSERT INTO WANG 

ACCESS通过一个连接写入的数据,还有一个连接却读取不出来

近期在用c#实现一个数据导入的功能,将一个ACCESS数据库中的数据导入到还有一个ACCESS的数据库中,然后显示出来,可是导入成功了.却显示不出来. 经过研究认为应该是缓存的原因,因为我写入数据和读取数据使用的不是一个OleDbConnection对象.而是分别打开了两个OleDbConnection连接对象:一个连接写入成功了,但保存到磁盘还须要点时间.所以这个连接写入成功.还有一个连接马上去取就会有取不到的情况! 改为使用一个连接对象.问题就攻克了.