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,才可传递给文本框,不然报转换错误 |