如何从DataSet中筛选数据然后显示到DataGridView里
已经通过一个SQL语句将查询到的数据填充到DataSet里,有30列,但是我希望其中几列(不是连续的)的数据显示在DataGridView中,而不是30列都要,包括所有行...
已经通过一个SQL语句将查询到的数据填充到DataSet里,有30列,但是我希望其中几列(不是连续的)的数据显示在DataGridView中,而不是30列都要,包括所有行的。SQL语句不能变
环境是C#,楼上的朋友貌似没明白我的意思 展开
环境是C#,楼上的朋友貌似没明白我的意思 展开
4个回答
展开全部
新建datagridview 列,列的“数据”绑定到指定字段。也就是指定列的“数据属性”,在数据显示到datagridview中前,将datagridview的AutoGenerateColumns属性设置为false!
DataGridView1.AutoGenerateColumns = False
代码,如下!!!
DataGridView1.AutoGenerateColumns = False
Dim conn As New OleDbConnection
Dim ds As New DataSet
Dim myada As New OleDbDataAdapter
conn.ConnectionString = ConfigurationManager.ConnectionStrings("wingsbooksix").ToString().Replace("#@@b002012", "wingsbook2010")
conn.Open()
Dim sql As String = "select cInvcode as 存货编码,cInvName as 存货名称,cInvStd as 图书作者, cInvDefine4 as ISBN," & _
"cInvDefine5 as 出版社,cInvDefine7 as 外币标价,cInvDefine13 as 定价,cInvDefine15 as 出版时间,dSDate as 启用日期,cInvDefine14 as 重量 from Inventory where cInvcode " & _
"not in(select wb_cInvCode from opendatasource('SQLOLEDB','Data Source=192.168.1.10;User ID=sa;Password=wingsbook2010').wb2012.dbo.wbInventory where wb_cInvCode is not NULL)"
myada = New OleDbDataAdapter(sql, conn)
myada.Fill(ds)
DataGridView1.DataSource = ds.Tables(0)
DataGridView1.AutoGenerateColumns = False
代码,如下!!!
DataGridView1.AutoGenerateColumns = False
Dim conn As New OleDbConnection
Dim ds As New DataSet
Dim myada As New OleDbDataAdapter
conn.ConnectionString = ConfigurationManager.ConnectionStrings("wingsbooksix").ToString().Replace("#@@b002012", "wingsbook2010")
conn.Open()
Dim sql As String = "select cInvcode as 存货编码,cInvName as 存货名称,cInvStd as 图书作者, cInvDefine4 as ISBN," & _
"cInvDefine5 as 出版社,cInvDefine7 as 外币标价,cInvDefine13 as 定价,cInvDefine15 as 出版时间,dSDate as 启用日期,cInvDefine14 as 重量 from Inventory where cInvcode " & _
"not in(select wb_cInvCode from opendatasource('SQLOLEDB','Data Source=192.168.1.10;User ID=sa;Password=wingsbook2010').wb2012.dbo.wbInventory where wb_cInvCode is not NULL)"
myada = New OleDbDataAdapter(sql, conn)
myada.Fill(ds)
DataGridView1.DataSource = ds.Tables(0)
追问
环境是C#,楼上的朋友貌似没明白我的意思
展开全部
用DataTable的Select() 方法
或者用Linq语法查询:例如:
DataTable dt=ds.Tables[0];
DataTable dt2=dt.Clone();//复制一份表的结构
//用Linq语法将查询到的资料行放入刚复制的表中
(from r in dt.AsEnumerable() where r["ID"] == "" select r).CopyToDataTable(dt2, LoadOption.Upsert);//注意 where r["ID"] == "" 这段是希望显示列的条件
或者用Linq语法查询:例如:
DataTable dt=ds.Tables[0];
DataTable dt2=dt.Clone();//复制一份表的结构
//用Linq语法将查询到的资料行放入刚复制的表中
(from r in dt.AsEnumerable() where r["ID"] == "" select r).CopyToDataTable(dt2, LoadOption.Upsert);//注意 where r["ID"] == "" 这段是希望显示列的条件
展开全部
根据要显示的数据的的唯一标示,通过循环控制其符合条件的显示
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询