在c#中把oracle表展示在datagridview

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的連線物件名稱空間



private void Form1_Load(object sender, EventArgs e)
        {
            
            //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();
            //4,用介面卡把上述sql指令碼填充到上述容器中
            OracleDataAdapter da1=new OracleDataAdapter();
            //5,透過介面卡的屬性把上述命令sql指令碼與介面卡關聯,即讓介面卡執行上述sql
            da1.SelectCommand = oc1;
            //6,透過介面卡的fill方法向空器填充資料
            da1.Fill(ds1);
            //透過展示資料列表的datasource屬性與上述已填充資料的空器進行關聯.記得空器可能包含多個表,要用dataset.tables[0],僅提取一個表
            this.dataGridView1.DataSource = ds1.Tables[0];
        }

繼續上述,如何在選中datagridview某行資料時,顯示在窗體對應
的文字框中
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
    {
        private DataSet ds1 = new DataSet();
        private OracleDataAdapter da1 = new OracleDataAdapter();
        public int index1;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //屬性是否允許使用者在列表datagridview中新增或刪除資料
            dataGridView1.AllowUserToAddRows = false;
            dataGridView1.AllowUserToDeleteRows = false;
           
            //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(ds1,"dept");
            //透過展示資料列表的datasource屬性與上述已填充資料的空器進行關聯.記得空器可能包含多個表,要用dataset.tables[0],僅提取一個表
            this.dataGridView1.DataSource = ds1.Tables[0];
        }
        //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();
        }

       

       
    }
}

小結:
          1,定義一個全域性變數index1,儲存當前行索引
          2,datagridview.currentrow.index表示列表選中當前行索引
          3,datagrid.rows.cells表示列表某行某列,即定位到某行某列
          4,cells後切記新增value.tostring,才可傳遞給文字框,不然報轉換錯誤

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

相關文章