当前位置:编程学习 > C#/ASP.NET >>

datagrid显示数据的奇怪问题

各位大牛,我想在vb.net的windows form中使用一个datagird控件显示dataset中返回的查询内容,代码如下: 

Dim strSQL As String = "select teacher_xm as 姓名,teaher_xb as 性别 from teacher"         //teacher是表名,teacher_xm,teacher_xm是表项 
SqlCommand1.CommandText = strSQL 
DataSet11.Clear() 
SqlDataAdapter1.Fill(DataSet11) 

SqlConnection1,SqlCommand1,SqlDataAdapter1和DataSet11均已设置好,并设置了DataGrid1.DataSource = DataSet11.Table,检索后datagird1可以将“姓名”,“性别”这两个列标题显示出来,但其中的数据为空。

当用鼠标点击“姓名”或者“性别”列标题时,奇怪的现象发生了,检索的数据显示出来了!但每次都要点击列标题才能显示,是什么原因请大家指教!先在这里谢过了!

--------------------编程问答-------------------- 奇怪 --------------------编程问答-------------------- 看不见你的上下文,推测可能是你的代码逻辑顺序上的错误,建议你把代码贴全一点

另外DataSet下面没有Table这个成员,应该是指定
DataGrid1.DataSource   =   DataSet11.Table(X)
或者DataGrid1.DataSource   =   DataSet11.Table("表名")
05里面不太清楚,至少03里这样写是显示不出数据的 --------------------编程问答-------------------- 好的,我详细说明一下。例如,我有一个名为teacher的数据库,其中包含两个表teahcer1,teacher2,teacher1中含有ID,姓名,性别表项,teacher2中含有ID,单位,通讯地址(这两个表不能合成一个表),现在我想用SQL语句对两个表进行跨表查询,如:

select 姓名,性别,单位,通讯地址
from teacher1,teacher2
where teacher1.ID=teacher2.ID

然后将检索结果在vb.net的windows form中用一个datagird控件显示出来。我使用了ADO.NET的数据控件来实现,步骤如下:

1、添加窗体form1

2、在窗体上放置控件datagrid1

3、在窗体上放置控件sqlconnection1,将其与数据库teacher连接;
   放置控件sqlcommand1,将其connection属性设为sqlconnection1,commandtext属性设为select * from teacher1;---(这样写是想在窗体load时显示teahcer1表中的数据)
   放置控件sqldataadaptor1,将其selectcommand属性设为sqlcommand1
   通过sqldataadaptor1的右键命令“生成数据集”生成dataset11---(这个时候在“数据源”窗口中出现dataset1,下面就是个名为Table的表,里面的表项是teacher1里的表项)

4、在form1的load事件中写如下代码:

        SqlConnection1.ConnectionString = "Data Source=ZHUBAO-50521BCA;Initial Catalog=teacher;Integrated Security=True"
       SqlConnection1.Open()
       SqlDataAdapter1.Fill(DataSet11)
       DataGrid1.DataSource = DataSet11.Table

5、在button1的click事件中写如下代码:

Dim strSQL As String = select 姓名,性别,单位,通讯地址 from teacher1,teacher2 where teacher1.ID=teacher2.ID
SqlCommand1.CommandText = strSQL
DataSet11.Table.Reset()
'更新数据源
SqlDataAdapter1.Fill(DataSet11)

然后点出按钮进行查询,问题出现了!!!,检索后datagird1可以将“姓名”,“性别”等列标题显示出来,但其中的数据为空。但当用鼠标点击“姓名”或者“性别”列标题时,奇怪的现象发生了,检索的数据显示出来了!但每次都要点击列标题才能显示,请指教下,分不够可以再加,再次感谢




--------------------编程问答-------------------- 我在数据库中使用DataGrid控件,用的挺好的。 --------------------编程问答-------------------- 我也用得挺好 --------------------编程问答-------------------- 你把窗体上除DataGrid1控件外的其他控件全部拿掉,然后按如下代码试试:

Dim conn As New SqlConnection("Data Source=ZHUBAO-50521BCA;Initial Catalog=teacher;Integrated Security=True")
Dim da As New SqlDataAdapter("select 姓名,性别,单位,通讯地址 from teacher1,teacher2 where teacher1.ID=teacher2.ID", conn)

Dim ds As New DataSet()
da.Fill(ds)
DataGrid1.DataSource = ds.Tables(0)
--------------------编程问答-------------------- 我来学习一下.
补充:.NET技术 ,  VB.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,