在winfrom中,如何将数据库的数据显示在datagridview控件上。

时间:2022-09-21 19:12:10
虽然datagridview很早就用过,但当时都没有好好得记录、总结。
最近在写oracle的大作业,再一次感受到可以操作数据库的类好多,网上的资料太多,就想好好地总结下到底该怎么用,便于下次的使用,顺便帮助那些和我一样愁苦于这个的码农。

不想将每一个类介绍过去,具体的大家自己去mdsn上自己看就可以了。

由于只讲显示,所以我指讲讲SQL是select的情况下,在这里我想针每个需求来讲用法。

实现select语句,将数据显示在datagridview中:

1)datascource 绑定的方法。优点,一个语句就搞定显示啊,但是,如果列是会变的或者列名和数据库的不一样,就难搞了。

这里送给大家一个函数,调用直接搞定。

//str_query为select的语句,ds1新建一下即可,dgv为你要现实数据的那个空间
void queryAndFillinTable(String str_query, DataSet ds1, DataGridView dgv)
 {
    OracleDataAdapter da = new OracleDataAdapter();
    OracleCommand cmd1 = new OracleCommand(str_query, conn);//conn的类为OracleConnection,就是你连接数据库的对象
    da.SelectCommand = cmd1;
    da.Fill(ds1);
    dgv.Columns.Clear();//清除原来的列
    dgv.DataSource = ds1.Tables[0];
 }

2)一行一行插数据。优点,要显示什么数据我自己定,缺点,比较繁琐。

String[] good = new String[7];
String str_query = "你的select语句,这里我select出了7个属性“
OracleCommand cmd1;
OracleDataReader read = null;
cmd1.CommandText = str_query;
read = cmd1.ExecuteReader();
while (read.Read())
{
   for (int i = 0; i < 7; i++)
      good[i] = read[i].ToString()//自己想怎么样就怎么来吧,这里一个循环就是一行,read[]为列
}
DataGridViewRow row = new DataGridViewRow();
row.CreateCells(dgv_good, new Object[] { good[0], good[1], good[2], good[5], good[3], null, null });
dgv_good.Rows.AddRange(row);