datagrid中数据已经删除,但为什么还是会显示

飘动的风 2003-02-12 04:43:06

当按下”删除“,数据庫中的记录已经删除,在页面上还是能显示被删除的记录,如果刷新之后就没了,这是怎么回是,是不是要在删除后,重新建立数据源,然后重新梆定到datagrid!但这样做觉得有点烦!
代码如下:
-----------------------------------------------------------------------
<%@ Page Language="VB" Debug="True" EnableViewState="True" %>
<%@ Register TagPrefix="wmx" Namespace="Microsoft.Saturn.Framework.Web.UI" Assembly="Microsoft.Saturn.Framework, Version=0.5.464.0, Culture=neutral, PublicKeyToken=6f763c9966660626" %>
<%@ import Namespace="system.data" %>
<%@ import Namespace="system.data.sqlclient" %>
<script runat="server">

'*****************************************
'Del Email by EmailID
'*************************************
Function DelEmail(ByVal emailID As Integer) As Integer
Dim connectionString As String = "server='localhost'; user id='sa'; password=''; Database='asp.net'"
Dim sqlConnection As System.Data.SqlClient.SqlConnection = New System.Data.SqlClient.SqlConnection(connectionString)

Dim queryString As String = "DELETE FROM [EmailUser] WHERE ([EmailUser].[EmailID] = @EmailID)"
Dim sqlCommand As System.Data.SqlClient.SqlCommand = New System.Data.SqlClient.SqlCommand(queryString, sqlConnection)

sqlCommand.Parameters.Add("@EmailID", System.Data.SqlDbType.Int).Value = emailID

Dim rowsAffected As Integer = 0
sqlConnection.Open
Try
rowsAffected = sqlCommand.ExecuteNonQuery
Finally
sqlConnection.Close
End Try

Return rowsAffected
End Function

Sub Page_Load(Src As Object, e As EventArgs)
Dim connectionString As String = "server='localhost'; user id='sa'; password=''; Database='asp.net'"
Dim sqlConnection As System.Data.SqlClient.SqlConnection = New System.Data.SqlClient.SqlConnection(connectionString)
Dim sqlstr as string="select * from EmailUser"
Dim emailsqlcommand as new sqlcommand(sqlstr,sqlConnection)
emailsqlcommand.Connection.Open()
Dim myReader As SqlDataReader = emailsqlcommand.ExecuteReader()
DataGrid1.datasource=myReader
if not Page.IsPostBack then
DataGrid1.databind()
end if
end sub

Sub BtnDelEmail_Click(sender As Object, e As EventArgs)
Dim i as integer
Dim result As integer
result=0
for i=0 to DataGrid1.Items.Count-1
If CType(DataGrid1.Items(i).FindControl("ChkDel"), CheckBox).Checked Then ' 只取选定时的值
result=result+DelEmail(cint(DataGrid1.Items(i).Cells(4).Text))
'LbeCk.text=LbeCk.text+DataGrid1.Items(i).Cells(4).Text
End If
next
DataGrid1.databind()
End Sub

</script>
<html>
<head>
</head>
<body>
<p>
</p>
<form runat="server">
<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False" BorderStyle="None" BorderWidth="1px" BorderColor="#CC9966" BackColor="White" CellPadding="4">
<FooterStyle forecolor="#330099" backcolor="#FFFFCC"></FooterStyle>
<HeaderStyle font-bold="True" forecolor="#FFFFCC" backcolor="#990000"></HeaderStyle>
<PagerStyle horizontalalign="Center" forecolor="#330099" backcolor="#FFFFCC"></PagerStyle>
<SelectedItemStyle font-bold="True" forecolor="#663399" backcolor="#FFCC66"></SelectedItemStyle>
<ItemStyle forecolor="#330099" backcolor="White"></ItemStyle>
<Columns>
<asp:TemplateColumn HeaderText="主题">
<HeaderTemplate>
<img src="http://www.dev-club.com/club/bbs/images/emote/mood24.gif" />
</HeaderTemplate>
<ItemTemplate>
<img src="http://www.dev-club.com/club/bbs/images/emote/mood24.gif" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="主题">
<ItemTemplate>
<asp:HyperLink id="HyperLink1" runat="server" Text='<%# left(DataBinder.Eval(Container,"DataItem.Email"),10) %>' ToolTip='<%# DataBinder.Eval(Container, "DataItem.Email") %>' NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.EmailID","/sendemail/Edit_Emailsss.aspx?id={0}") %>' Target="_parent"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="删除">
<HeaderTemplate>
<asp:CheckBox id="ChkDelAll" runat="server"></asp:CheckBox>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox id="ChkDel" runat="server" ></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="email" HeaderText="email">
<HeaderStyle horizontalalign="Center"></HeaderStyle>
</asp:BoundColumn>
<asp:BoundColumn Visible="False" DataField="EmailID" HeaderText="id"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
<hr />
<asp:Button id="BtnDelEmail" onclick="BtnDelEmail_Click" runat="server" Text="删除"></asp:Button>
</form>
</body>
</html>
...全文
64 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
powerpeople 2003-02-13
  • 打赏
  • 举报
回复
是需要重新绑定,除非你把记录集保存到本地(session),删除时也删除本地的记录,只用和本地数据绑定一次,不需要再去读数据库,不过最好还是重新读一次比较保险!
117hn 2003-02-12
  • 打赏
  • 举报
回复
不是,你可以这样写
void DataBind()
{

Dim sqlstr as string="select * from EmailUser"
Dim emailsqlcommand as new sqlcommand(sqlstr,sqlConnection)
emailsqlcommand.Connection.Open()
Dim myReader As SqlDataReader = emailsqlcommand.ExecuteReader()
DataGrid1.datasource=myReader
DataGrid1.databind()


}


然后在你触发事件的末尾调用
DataBind();
飘动的风 2003-02-12
  • 打赏
  • 举报
回复
是不是要重新读取数据庫数据?
如下:
--------------------------------------------------------
Dim sqlstr as string="select * from EmailUser"
Dim emailsqlcommand as new sqlcommand(sqlstr,sqlConnection)
emailsqlcommand.Connection.Open()
Dim myReader As SqlDataReader = emailsqlcommand.ExecuteReader()
DataGrid1.datasource=myReader
DataGrid1.databind()
对否?
117hn 2003-02-12
  • 打赏
  • 举报
回复
你没有重新绑定,
ykn 2003-02-12
  • 打赏
  • 举报
回复
删除后要重新榜定

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧