c#中如何使用列表datagridview新增修改刪除直接同步到oracle

wisdomone1發表於2012-02-24
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OracleClient; //引入oracle的連線物件名稱空間

namespace learncomboxanddatagridview
{
    public partial class Form1 : Form
    {
        //public  DataSet ds1 = new DataSet();
        public OracleDataAdapter da1 = new OracleDataAdapter();
        public DataTable dt1=new DataTable();
        public int index1;
        public Form1()
        {
            InitializeComponent();
        }
        
        //窗體載入事件
        private void Form1_Load(object sender, EventArgs e)
        {
            //屬性是否允許使用者在列表datagridview中新增或刪除資料
            //dataGridView1.AllowUserToAddRows = false;
            //dataGridView1.AllowUserToDeleteRows = false;

            //學習如何顯示不顯示列表的列標題
            dataGridView1.ColumnHeadersVisible = true;

            //學習設定列表的列標題的樣式格式設定(字型及大小及其它,粗細體等)
            DataGridViewCellStyle. columnheaderstyle. = new DataGridViewCellStyle();
            columnheaderstyle.BackColor = Color.Brown;
            //font.bold返回型別為布林bool
            columnheaderstyle.Font = new Font("Verdana",10,FontStyle.Bold);

            //此步很重要,就讓列表的列表頭以上述設定的樣式進行顯示
            dataGridView1.ColumnHeadersDefaultCellStyle. = columnheaderstyle;


            
            //oraclconnection連線資料庫字串為data source,user id,
            //1,連線資料庫
            OracleConnection con1 = new OracleConnection("Data Source=orcl;User id=scott; Password=system;");//oracleconnection類隸屬於名稱空間system.data.oracleclient
            //2,連線資料庫成功,生成執行sql指令碼
            OracleCommand oc1 = new OracleCommand("select deptno,dname,loc from dept", con1);
           //OracleDataReader dr = oc1.ExecuteReader();
            //3,生成存放sql執行結果的容器
            DataSet ds1 = new DataSet();
           
            
            //5,透過介面卡的屬性把上述命令sql指令碼與介面卡關聯,即讓介面卡執行上述sql
            da1.SelectCommand = oc1;
            //6,透過介面卡的fill方法向空器填充資料
            da1.Fill(dt1);
            //透過展示資料列表的datasource屬性與上述已填充資料的空器進行關聯.記得空器可能包含多個表,要用dataset.tables[0],僅提取一個表
            this.dataGridView1.DataSource = dt1;
        }
        //datagridview的事件cellclick為單擊列表單元格任何部分會觸發此事件
        //實現單擊列表某一行把對應資料顯示在列表下方的對應文字框中

        //selectionchanged事件為選中列表不同行觸發此事件
        private void dataGridView1_SelectionChanged(object sender, EventArgs e)
        {
            index1 = dataGridView1.CurrentRow.Index;
            //cells表示每行每個列,一定要在後面新增value.tostring,不然提示轉換錯誤
            this.textBox1.Text =(string)dataGridView1.Rows[index1].Cells[0].Value.ToString();
            this.textBox2.Text = (string)dataGridView1.Rows[index1].Cells[1].Value.ToString();
            this.textBox3.Text = (string)dataGridView1.Rows[index1].Cells[2].Value.ToString();

            //學習多種不同選中列表datagridview不同行的區別及選中不同行突出以其它色調顯示
            //selectionmode指示如何選擇不同的單元格
            dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            //defaultcellstyle為控制單元格的不同樣式
            //selectionbackcolor為選中單元格時的色調
            //dataGridView1.DefaultCellStyle.SelectionBackColor = Color.;
        }

        //在列表datagridview中直接修改資料(新增刪除操作)並馬上同步到oracle資料庫表中
        private void button1_Click(object sender, EventArgs e)
        {
            //一定要用oraclecommandbuilder來封裝下介面卡
            OracleCommandBuilder cx = new OracleCommandBuilder(da1);
            //用介面卡的update方法,update方法的引數為列表資料來源datatable(利用介面卡的fill填充生成)
            da1.Update(dt1);
            
           
        }

        

        
    }
}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-717107/,如需轉載,請註明出處,否則將追究法律責任。

相關文章