小妹,有一投票问题想请教。

mostice 2003-09-12 10:52:10
简单叙述下工作流程:
此页由首也default.aspx通过<form id="vote" method="post" action="vote.aspx" target="_blank">跳转过来。
If 先判断拥护是否选择投票项目。Then
If 在判断用户是否已经投票了 Then
没有投票,则修改数据
session("tag") = 0
Else
提示用户已经投票完毕,不可重复投票

End If

Else
如果为选择则不修改数据库数据。
End If

存在问题:数据已经修改,但是页面上无法即刻显示修改后的结果。
我手动刷新后才会显示修改后结果。但是此时页面显示的message.text 已经为“对不起,您已经投过票!!!“
请大家帮忙!


代码如下:
Sub Page_Load(sender As Object, e As EventArgs)

'-------------------计算总票数---------------
MyConnection = New SqlConnection(dbconn)
SelectStr = "select sum(pvr_result) as result from play_voteResult"
SelectCmd = New SqlCommand(SelectStr,MyConnection)
MyConnection.Open()
readData = SelectCmd.ExecuteReader()
If readData.Read() Then
result = readData("result")
Else
Response.Write("没有数据")
End If
MyConnection.Close()
'---------------------------------
Response.Write(Session("tag"))
'If Not IsPostBack Then

If Request.Form("vote") <> "" Then
If Session("tag") <> 1 Then
Session("tag") = 0
'---------------------------------
Response.Write("可修改")
'修改投票数
MyConnection1 = New SqlConnection(dbconn)
UpdateStr = "UPDATE play_voteResult SET pvr_result=pvr_result+1 WHERE pvr_pvi_id = " + Request.Params("vote")
UpdateCmd = New SqlCommand(UpdateStr,MyConnection1)
MyConnection1.Open()
Try
UpdateCmd.ExecuteNonQuery()
Message.Text = "<font color=green size=2><b>感谢您的支持!!!</b></font>"
BindGrid()
Catch Exp As SQLException
MyConnection.Close()
End Try
MyConnection1.Close()

Else
Response.Write("禁止修改")
Message.Text = "<font color=#FF0000 size=2><b>对不起,您已经投过票!!!</b></font>"
End If

Else
Message.Text = "<font color=#FF0000 size=2><b>对不起,您还没有选择!!!</b></font>"
Session("tag") = 0
End If

'End If

BindGrid()
End Sub
Sub BindGrid()

MyConnection1 = New SqlConnection(dbconn)
ResultStr = "SELECT * FROM play_voteResult,play_voteItem WHERE play_voteResult.pvr_pvi_id = play_voteItem.pvi_id"
ResultCmd = New SqlDataAdapter(ResultStr,MyConnection1)
DS = New DataSet()
ResultCmd.Fill(DS,"results")
ResultDataGrid.DataSource = DS.Tables("results").DefaultView
'vote.DataSource = DS1.Tables("vitems").DefaultView
ResultDataGrid.DataBind()
End Sub
</script>

...全文
33 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mostice 2003-09-15
  • 打赏
  • 举报
回复
问题解决了。
用了两个页面,但真不是我满意的结果。
过段时间有了新想法,在试试。
谢谢楼上几位兄弟帮忙,这里谢过了。
seesea125 2003-09-12
  • 打赏
  • 举报
回复
如果数据修改,页面上能即刻显示修改后的结果,就不会存在问题了把
解决方法,更新数据库再添加一句
Redirect.Response("你的页面");//添加这句,也就是把你页面重新进入,重新绑定
或者
if (!Page.IsPostBack)
{

}
else
{
//页面回调后再重新绑定一次
}
seesea125 2003-09-12
  • 打赏
  • 举报
回复
你也可以这么做,目的是更新后页面即时显示更新数据
在void add_click(object sender,EventArgs e)
{
DateTime d=DateTime.Now;
string str1="insert into liuyan(name,gender,qq,email,content,riqi)values('"+name.Text+"','"+gender.Text+"','"+qq.Text+"','"+email.Text+"','"+content.Text+"','"+d.ToString()+"')";
OleDbConnection my11=new OleDbConnection("provider=microsoft.jet.oledb.4.0;data source="+Server.MapPath ("liuyan.mdb"));
my11.Open();
OleDbCommand my2=new OleDbCommand(str1,my11);
my2.ExecuteNonQuery();
my11.Close();//以上是你的操作,不用说了把
Redirect.Response("你的添加页面");//添加这句,也就是把你页面重新进入,重新绑定
}
mostice 2003-09-12
  • 打赏
  • 举报
回复
能先看看我的思路吗?
如果按照上面的思路。
该怎样避免我提到的问题。
pengcheng 2003-09-12
  • 打赏
  • 举报
回复
up
mmiiaaoo 2003-09-12
  • 打赏
  • 举报
回复
if (!Page.IsPostBack)
{
//第一次调入的代码
}
else
{
//刷新后要实现的代码,没有影响的话再重新绑定数据库一次
}

seesea125 2003-09-12
  • 打赏
  • 举报
回复
if (!Page.IsPostBack)
{
//第一次调入的代码
}
else
{
//刷新后要实现的代码,没有影响的话再重新绑定数据库一次
}
mostice 2003-09-12
  • 打赏
  • 举报
回复
我恍惚也知道错在这里。
但思路还是很不清楚。
能再多点提示吗?

62,025

社区成员

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

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

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

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