这是我在ASP.NET中的GridView
<div>
<asp:Panel ID="Panel_listview" runat="server" Font-Names="Arial" HorizontalAlign="Center">
<asp:GridView ID="gridview_book_info" runat="server"></asp:GridView>
</asp:Panel>
</div>
这是我在VB中的Page_Load
Dim gridview_detail As String
gridview_detail = "select * from book;"
da = New MySqlDataAdapter(gridview_detail, cn)
da.Fill(ds, "book")
gridview_book_info.DataSource = ds
gridview_book_info.DataBind()
备注:
cn是mysqlconnection(“Server = localhost .......”)
ds是数据集
这是我的问题:
当我调试时,触发了Page_Load并且gridview从mysql数据库获取数据并显示它。例如:
ABCDE (header)
abcde
但是当我刷新页面时,gridview会变成这样:
ABCDE (header)
abcde
abcde
每当我刷新页面时,它都会从mysql数据库中复制日期,我试过了:
我想知道的事情:
我需要帮助!
答案 0 :(得分:0)
IsPostBack
表示发回了服务器的帖子,而不是页面已刷新。
尝试在数据绑定
之前检查页面加载方法中是否未发生回发If Not Page.IsPostBack Then
Dim gridview_detail As String
gridview_detail = "select * from book;"
da = New MySqlDataAdapter(gridview_detail, cn)
da.Fill(ds, "book")
gridview_book_info.DataSource = ds
gridview_book_info.DataBind()
End If
答案 1 :(得分:0)
我看一下Here
我在Page_Load中使用的原始代码:
If Not Me.IsPostBack then
Dim gridview_detail As String
gridview_detail = "select * from book;"
da = New MySqlDataAdapter(gridview_detail, cn)
da.Fill(ds, "book")
gridview_book_info.DataSource = ds
gridview_book_info.DataBind()
End If
使用我已声明的公共模块:
Public ds As New DataSet()
Public connStr As String = "Server=localhost...."
Public cn As New MySqlConnection(connStr)
我在Page_Load中做了更改,它防止了mysql表中的重复数据&#34; book&#34;当我刷新页面时:
If Not Me.IsPostBack Then
Using cn
Using cmd = New MySqlCommand("SELECT * FROM book")
Using da As New MySqlDataAdapter()
cmd.Connection = cn
da.SelectCommand = cmd
Using ds As New DataSet()
da.Fill(ds)
gridview_book_info.DataSource = ds
gridview_book_info.DataBind()
End Using
End Using
End Using
End Using
End If
所以解决方案是:
始终使用&#34;使用&#34;访问数据库时。
如果您对此问题有更好的解释,请在下面发表评论,说明为何使用&#34;使用&#34;。
答案 2 :(得分:0)
您需要使用using
这个词,因为它安全且值得推荐使用。
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
Dim constr As String = ConfigurationManager.ConnectionStrings("yourConnectionString").ConnectionString
Using con As New MySqlConnection(constr)
Using cmd As New MySqlCommand("SELECT * FROM books")
Using sda As New MySqlDataAdapter()
cmd.Connection = con
sda.SelectCommand = cmd
Using dt As New DataTable()
sda.Fill(dt)
GridView1.DataSource = dt
GridView1.DataBind()
End Using
End Using
End Using
End Using
End If End Sub
有关完整文档。看看下面: -
希望能帮到你