c#中!ispostback好像失效了
我的网站思路是这样,加载首页的时候把客户端IP读出来并写入数据库,我把其中写入数据库的代码写在了if(!ispostback)中,可是当我刷新页面时发现每次刷新都往数据库...
我的网站思路是这样,加载首页的时候把客户端IP读出来并写入数据库,我把其中写入数据库的代码写在了if(!ispostback)中,可是当我刷新页面时发现每次刷新都往数据库里写一次,结果造成数据库暴满,请问这是什么回事?Ispostback为什么会不起作用?
if (!IsPostBack)
{
Response.Write("这是第一次加载");
OleDbConnection con = new OleDbConnection();
//连接字符串
string conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
conStr += Server.MapPath(@"IPDB\IP.mdb");
con.ConnectionString = conStr;
con.Open();
//创建命令对象 cmd
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = "insert into IP(IP) values('" + IP + "')";
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
} 展开
if (!IsPostBack)
{
Response.Write("这是第一次加载");
OleDbConnection con = new OleDbConnection();
//连接字符串
string conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
conStr += Server.MapPath(@"IPDB\IP.mdb");
con.ConnectionString = conStr;
con.Open();
//创建命令对象 cmd
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = "insert into IP(IP) values('" + IP + "')";
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
} 展开
6个回答
展开全部
刷新页面,DOTNET不认为是回传,因此你每次!IsPostBack都是true,所以你每次都往数据库里写,回传被页面上的按扭或是连接触发的,所以你不要一定按F5刷新
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你点的是浏览器上的刷新按钮的话
那就相当于重新加载一个新的页面 那个时候IsPostBack始终是false
直接用sessionId或其他的什么来做判断吧
那就相当于重新加载一个新的页面 那个时候IsPostBack始终是false
直接用sessionId或其他的什么来做判断吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ISPOSTBACK是指回发,不是刷新
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(!isPostback)
{} 回发 不是刷新
CraftySnake正解
{} 回发 不是刷新
CraftySnake正解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般是不会出现这种情况的,可能还是你写得有问题,不介意的话你可以把代码贴出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询