日期:2014-05-18  浏览次数:20490 次

在GridView中插入数据点击两次才能生效
我写了一个在方法第一次点击添加的时候没有反应,第二次点击才能运行但是密码不能插入,,但是有时 不是 这样,,这是什么原因帮我看一下

点击添加 让ViewState["UserId"]) ==0然后判断ViewState["UserId"]) ==0是真 或者假的话执行下面 的语句


if (Convert.ToInt32(ViewState["UserId"]) ==0)
  {
  bool bflog = true;
  SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["JXPG"].ConnectionString);
  cn.Open();
  string sql = "SELECT * FROM Sys_Membership WHERE UserName=@UserName";
  SqlCommand cm = new SqlCommand(sql, cn);
  cm.Parameters.Add("UserName", SqlDbType.NVarChar);
  cm.Parameters["UserName"].Value = TxtUserName.Text;
  SqlDataReader dr = cm.ExecuteReader();
  if(dr.Read())
  {

  bflog = false;

  }
   
   
  dr.Close();
  if (bflog == true)
  {
  SqlConnection cns = new SqlConnection(ConfigurationManager.ConnectionStrings["JXPG"].ConnectionString);
  cns.Open();

  string sqls = "INSERT INTO Sys_Membership(UserName,Pwd,Alias,LogInCount,Pass) VALUES(@UserName,@Pwd,@Alias,@LogInCount,@Pass)";
  SqlCommand cms = new SqlCommand(sqls, cns);
  cms.Parameters.Add("@UserName", SqlDbType.NVarChar);
  cms.Parameters.Add("@Alias", SqlDbType.NVarChar);
  cms.Parameters.Add("@Pwd", SqlDbType.NVarChar);
  cms.Parameters.Add("@LogInCount", SqlDbType.Int);
  cms.Parameters.Add("@Pass", SqlDbType.Int);
  cms.Parameters["@UserName"].Value = TxtUserName.Text.Trim();
  cms.Parameters["@Alias"].Value = TxtAlias.Text.Trim();
  cms.Parameters["@LogInCount"].Value = 1;
  cms.Parameters["@Pass"].Value = 1;
  cms.Parameters["@Pwd"].Value = sl.GetFinallPwd(TxtPwd.Text).Trim();
  cms.ExecuteNonQuery();
  cns.Close();
  BindDate();
  }

------解决方案--------------------
断点单步调试一下,为什么第一次点击后没有完成相关代码。
------解决方案--------------------

这个自己调试好一些。。

if (Convert.ToInt32(ViewState["UserId"]) ==0)
{
bool bflog = true;
SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["JXPG"].ConnectionString);
}

你这判断的用意是什么?


------解决方案--------------------
“添加修改都是一个”就很成问题,很不对路。当点击按钮的时候,你的这些程序当然应该写在按钮的事件处理程序中啦。难道你误写到page_load中去了?