【问题标题】:declaring gridview selectcommand声明 gridview 选择命令
【发布时间】:2011-05-07 10:44:21
【问题描述】:

当页面加载时,应该使用我的第一个 SQL SELECT 语句加载 GridView(位于更新面板中)。

单击按钮时,相同的 GridView 将加载新数据。

我做错了什么?启动时,不会出现 GridView。

Public cmd As New SqlCommand()
    Public percentp As New SqlCommand()
    Public da As New SqlDataAdapter(cmd)
    Public conn As New SqlConnection("Data Source=TEST-TEST-TEST01;Initial Catalog=TEST;Integrated Security=True")

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    cmd.Connection = conn
    conn.Open()
    Dim ds As New DataSet
    cmd.CommandText = "Select * from test1"
    da.Fill(ds)
    GridView1.DataSource = ds.Tables(0)
    da.FillSchema(ds, SchemaType.Mapped)
    conn.Close()        
End Sub   

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
    cmd.Connection = conn
    conn.Open()
    Dim ds As New DataSet
    cmd.CommandText = "SELECT * from test"
    da.Fill(ds)
    GridView1.DataSource = ds.Tables(0)
    da.FillSchema(ds, SchemaType.Mapped)
    conn.Close()        
    TextBox1.Text="aaaaaaaaaaa"
End Sub
End Class

我试过了 GridView1.DataSource = ds.Tables(0) GridView1.DataBind

【问题讨论】:

    标签: .net asp.net sql vb.net gridview


    【解决方案1】:

    你需要打电话

    GridView1.DataSource = ds.Tables(0)
    GridView1.DataBind() // this is needed to bind the datasource to GridView
    

    【讨论】:

    • 我做了 GridView1.DataSource = ds.Tables(0) GridView1.DataBind 但没用
    • 现在它加载第一个表,但是当我单击按钮将其更新到下一个查询时,它保持不变
    • 是的,您需要对其他事件执行相同操作...在您的 Button1_Click 上
    • 当然,因为你又在做同样的事情(SELECT * FROM test),你需要做不同的事情才能看到你的 GridView 发生了变化。
    • 不,那些不是我刚刚在网站上发布的实际查询,查询不同,有没有办法清除数据网格,在按钮的开头单击
    【解决方案2】:

    设置数据源后需要调用GridView1.DataBind();

    【讨论】:

      【解决方案3】:

      从数据库中检索数据后,您忘记包含 GridView1.Databind() 命令。您通常在检索数据后设置数据源,因此您的 Page_Load 方法会像这样更好地工作:

      Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
          cmd.Connection = conn
          conn.Open()
          Dim ds As New DataSet
          cmd.CommandText = "Select * from test1"
          da.Fill(ds)
          conn.Close()        
          GridView1.DataSource = ds.Tables(0)
          GridView1.DataBind()        
      End Sub
      

      【讨论】:

      • 谢谢,它现在加载第一个表,但是当我单击按钮将其更新到下一个查询时,它保持不变
      • 我想你上面有你的答案,但是每次页面发回更新时,你都需要再次调用数据绑定方法。 ASP.Net 是无状态的,因此它不会自动跟踪对数据源的更改,并且会将之前的数据缓存在 ViewState 中以防止再次绑定。
      猜你喜欢
      • 2014-03-21
      • 2022-10-05
      • 2012-01-01
      • 1970-01-01
      • 2022-01-21
      • 2013-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多