当前位置:编程学习 > C#/ASP.NET >>

C#操作数据库改变了数据但打开表后显示数据没有改变?

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace 登录程序
{
  public partial class Form1 : Form
  {
  public Form1()
  {
  InitializeComponent();
  }

  private void IncErrortimes()
  {
  using (SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;
  AttachDBFilename=|DataDirectory|\myDB.mdf;
  Integrated Security=True;User Instance=True"))

  using (SqlCommand updateCmd = con.CreateCommand())
  {
  con.Open();
  updateCmd.CommandText = "update Mytable set Errortimes=Errortimes+1 where UserName=@UN";
  updateCmd.Parameters.Add(new SqlParameter("UN", Usernametextbox.Text));
    
  updateCmd.ExecuteNonQuery();
  }
  MessageBox.Show("登录失败!!!");

  }
    
  private void button1_Click(object sender, EventArgs e)
  {
  using (SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;
AttachDBFilename=|DataDirectory|\myDB.mdf;
Integrated Security=True;User Instance=True"))
  {
  con.Open();
  using (SqlCommand cmd = new SqlCommand())
  {
  cmd.Connection = con;
  cmd.CommandText = "select * from Mytable where Username=@UN";
  cmd.Parameters.Add(new SqlParameter("UN", Usernametextbox.Text));
  Username=Usernametextbox.Text";
  using (SqlDataReader reader = cmd.ExecuteReader())
  {
  if (reader.Read())
  {
  int arrortime = reader.GetInt32(reader.GetOrdinal("Errortimes"));
  if (arrortime>2)

  {
  MessageBox.Show("登录次数过多,禁止登录!!!");
  ResetErrortimes();
  return;
  }
  string dbpassword = reader.GetString(reader.GetOrdinal("Password"));
  if (dbpassword==PasswordtextBox.Text)
  {
  MessageBox.Show("登录成功!");
  }
  else
  {
  IncErrortimes();
  }
  }
  else
  {
  MessageBox.Show("用户名不存在");
  }
  }
  }
  }

  }

  private void button2_Click(object sender, EventArgs e)
  {
  creatTable();
  MessageBox.Show("创建新表成功!!!");
  }
  }
}
当某一用户名连续登录三次失败会报错"登录次数过多,禁止登录!!!";(可见Mytable表字段Errortimes数据变成3了)
但是打开表后该对应用户Errortimes字段值还是0 --------------------编程问答-------------------- MessageBox.Show("登录次数过多,禁止登录!!!");
  ResetErrortimes();

难道红色部分在提示后将错误信息复原为0了? --------------------编程问答-------------------- sorry

ResetErrortimes();这个函数没用
不该放到button1_Click(object sender, EventArgs e)中,
--------------------编程问答-------------------- 去掉ResetErrortimes();
还是出现那种情况


补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,