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;
    }
}

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

  1. 连接oracle读取数据

    没怎么用过oracle,而且是在地税内网内部估计是防火墙的原因虚拟机里也连不上oracle,刚开始费了很多周折查找问题,现在又放弃使用直连数据库了,记下来以备后用吧 public class Load ...

  2. 简谈python从Oracle读取数据生成图形

    初次学习python,连接Oracle数据库,导出数据到Excel,再从Excel里面读取数据进行绘图,生成png保存出来. 1.涉及到的python模块(模块安装就不进行解释了): 1 import ...

  3. python连接oracle导出数据文件

    python连接oracle,感觉table_list文件内的表名,来卸载数据文件 主脚本: import os import logging import sys import configpars ...

  4. 水晶报表连接Oracle做数据报表笔记

    首先,新建一个水晶报表的文件,这个时候要给这个报表文件绑定一个oracle数据源, 选择右侧菜单的这个东西,选择“数据库专家”,打开之后是这么一个界面: 选择建立新连接: 这个地方最关键,也是我为什么 ...

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

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

  6. C# Socket TcpClient 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。

    开始的代码: byte[] data = Encoding.UTF8.GetBytes(sInfo);                    tcpns.Write(data, 0,1024); 修改 ...

  7. EF6 连接Oracle 迁移数据错误解决方法

    环境:vs2015 + EF6 +ODP 数据库Oracle 11G add-migratioin 正常,但在update-database 时报如下错误: System.Runtime.Serial ...

  8. python3.4连接和读取oracle数据表

    想用python连接Oracle并查询数据表,就写了个Demo.参考了以下网址. Python学习之 cx_Oracle学习记录 一 http://my.oschina.net/bxxfighting ...

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

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

随机推荐

  1. 【HDU4859】 海岸线(网络流-最小割)

    Problem Description 欢迎来到珠海! 由于土地资源越来越紧张,使得许多海滨城市都只能依靠填海来扩展市区以求发展.作为Z市的决策人,在仔细观察了Z市地图之后,你准备通过填充某些海域来扩 ...

  2. Java OAuth开发包资料

    原文地址:http://www.oschina.net/project/tag/307/oauth?lang=19&sort=time

  3. 项目经验谈---IM新消息界面刷新异常处理记录

    项目中使用到ContentObserver来观察Provider的变化,当对Uri做数据库操作时对应的Provider会发一条Notify消息调用UI上层的ContentChange方法,在这个Con ...

  4. not in改写关联无需考虑重复数据

    SQL> select * from a1; ID NAME ---------- ---------- 1 a 1 a 2 a 3 a SQL> select * from a2; ID ...

  5. 【CF】244C Checkposts

    题目需要求啥很明确了.主要思想是先计算机联通块,然后每个块内找到一个最小值(以及该值的次数).最小值和结果1,次数乘积为结果2.联通块tarjan可解. /* 427C */ #include < ...

  6. GCC 命令行详解 -L 指定库的路径 -l 指定需连接的库名(转载)

    转载自:http://www.cnblogs.com/cy163/archive/2009/03/12/1409434.html 1.gcc包含的c/c++编译器gcc,cc,c++,g++,gcc和 ...

  7. Ubuntu 桌面歌词

    Ubuntu 有个用来显示歌词软件叫 osd-lyrics. 这个软件的强大之处在于他可以和各种播放器配合, 并且可以自动下载歌词. 自从升级到14.04后不能用了,便以为该软件被废弃了. 无意中发现 ...

  8. sql server知道触发器名如何查看里面代码

    以sqlserver2008为例,可以写代码查看,也可以通过SQL Server Manager Studio工具的树形列表查看. 一.代码查看: 直接在SQL Server Manager Stud ...

  9. Linux学习笔记11——文件I/O之二

    一.文件共享 内核使用三种数据结构表示打开的文件,它们之间的关系决定了在文件共享方面一个进程对另一个进程可能产生的影响. 1.每个进程在进程表中都有一个记录项,记录项中包含有一张打开文件描述表 2.内 ...

  10. HDOJ/HDU 2535 Vote(排序、)

    Problem Description 美国大选是按各州的投票结果来确定最终的结果的,如果得到超过一半的州的支持就可以当选,而每个州的投票结果又是由该州选民投票产生的,如果某个州超过一半的选民支持希拉 ...