日期:2014-05-18  浏览次数:21110 次

C# datagridview数据绑定问题
我在winform里加了一个datagridview控件,然后设计了该dg的columns的表头,分别为:井号,顶深(m),底深(m),外径(mm)。然后我从一个表"钻具组合"里读到了这些数据,想把他们绑定到这个datagridview里已经设计好表头的那些列里面。
该怎么弄?
  我的代码写的是:
  string zjstr = "select * from 钻具组合 where 井号= " + "'" + jichushuju.jinghao + "'" + " order by 底深";
  OleDbConnection myconn1 = new OleDbConnection();
  myconn1.ConnectionString = "Provider = Microsoft.Jet.OleDb.4.0;Data Source=shuili.mdb";
  OleDbCommand zjcomd = new OleDbCommand(zjstr, myconn1);
  zjzhdataSet.Clear();
  myconn1.Open();
  OleDbDataReader myreader1 = zjcomd.ExecuteReader();
  while (myreader1.Read())
  {
  OleDbDataAdapter myadapter = new OleDbDataAdapter(zjstr, myconn1);
  myadapter.Fill(zjzhdataSet, "钻具组合");
  dataGridView1.DataSource = zjzhdataSet .Tables ["钻具组合"];  
   
  }
  myconn1.Close();
这样运行出来的效果是,数据读出来了,也绑定到datagridview里了,但是不在绑定在我设计好表头的那些列里面,而是在后面重新加了几列来显示这些数据。
  我想知道,如果想要把从表里读出的数据,就显示在我设计好列名的列里面,代码该如何弄,或者说可行吗?

------解决方案--------------------
其实直接用sql语句就可以搞定,比如
string zjstr = "select 井号,dingshen 顶深(m) from 钻具组合 where 井号= " + "'" + jichushuju.jinghao + "'" + " order by 底深";


------解决方案--------------------
你如果是通过代码设计的话,可参考下面的代码:
 GridView.Columns.Add("COLUMN_NAME", "列名");//“COLUMN_NAME”是GridView中Column的名字,“列名”是
//显示出来的名字
GridView.Columns[0].DataPropertyName = "dt中的列名";
GridView.DataSource = dt;//dt是数据源
------解决方案--------------------
楼主很执着啊,哈哈,把那几列的DataPropertyName属性指定一下
------解决方案--------------------
写SQL语句的时候用别名,select 字段名称 AS (“你要定义的字段名称”),然后查询出来之后直接把查询出来的dataset直接填充到datagridview里面。