C# でログイン アプリケーション (Windows フォーム) を作成し、Visual Studio 2012 で .NET Framework 4.5 を使用しています。
ユーザー名とパスワードをデータベースに手動で入力しました。
したがって、ユーザーがユーザー名とパスワードを入力するLoginFormでは、私のコードは次のようになります。
public partial class LoginForm : Form
{
public LoginForm()
{
InitializeComponent();
}
System.Data.SqlServerCe.SqlCeConnection con;
System.Data.SqlServerCe.SqlCeDataAdapter da;
DataSet ds1;
int MaxRows = 0;
int inc = 0;
private void go_Click(object sender, EventArgs e)
{
DataRow dRow = ds1.Tables["Users"].Rows[inc];
if (EnterMasterPassword.Text == dRow.ItemArray.GetValue(1).ToString())
{
this.DialogResult = DialogResult.OK;
this.Close();
}
else
MessageBox.Show("Try again");
}
private void LoginForm_Load(object sender, EventArgs e)
{
con = new System.Data.SqlServerCe.SqlCeConnection();
con.ConnectionString = "Data Source=C:\\PMDatabase.sdf";
con.Open();
ds1 = new DataSet();
string sql = "SELECT * From tbl_login";
da = new System.Data.SqlServerCe.SqlCeDataAdapter(sql, con);
da.Fill(ds1, "Users");
MaxRows = ds1.Tables["Users"].Rows.Count;
con.Close();
}
}
*ボタンはどこに行くのですか*
これは完全に機能し、ユーザーは正常にログインします。しかし、Windows フォームを使用してユーザーにパスワードの更新/変更機能を提供する方法がわかりません。データベースを更新するには?その中のユーザー名とパスワードのフィールドは?
これまでのところ、次の手順を実行しました。
ユーザーが[パスワードの更新] ボタンをクリックすると、新しいフォーム(名前: Form7)が開きます。このフォームには、3 つのラベル、3 つのテキスト ボックス、1 つのボタンがあります。
TextBox1--> CurrentPassword
TextBox2--> NewPassword
TextBox3--> ConfirmNewPassword
ボタン --> UpdateUsrPassword
Form7 のコードは次のようになります。
public partial class Form7 : Form
{
public PasswordsAndData()
{
InitializeComponent();
}
System.Data.SqlServerCe.SqlCeConnection con1;
System.Data.SqlServerCe.SqlCeDataAdapter da1;
DataSet ds2;
int totalPasswords = 0, inc = 0;
private void Form7_Load(object sender, EventArgs e)
{
con1 = new System.Data.SqlServerCe.SqlCeConnection();
con1.ConnectionString = "Data Source=C:\\PMDatabase.sdf";
con1.Open();
ds2 = new DataSet();
string sql = "SELECT * From tbl_UserData";
da1 = new System.Data.SqlServerCe.SqlCeDataAdapter(sql, con1);
da1.Fill(ds2, "UserData");
totalPasswords = ds2.Tables["UserData"].Rows.Count;
con1.Close();
}
private void UpdateUsrPassword_Click(object sender, EventArgs e)
{
if(NewPassword.Text == ConfirmNewPassword.Text)
{
DataRow dRow1 = ds2.Tables["UserData"].NewRow();
dRow1[1] = ConfirmNewPassword.Text;
ds2.Tables["UserData"].Rows.Add(dRow1);
UpdateDB();
MessageBox.Show("Password Updated");
totalPasswords++;
inc = totalPasswords - 1;
}
}
private void UpdateDB()
{
System.Data.SqlServerCe.SqlCeCommandBuilder cb1;
cb1 = new System.Data.SqlServerCe.SqlCeCommandBuilder(da1);
cb1.DataAdapter.Update(ds2.Tables["UserData"]);
}
}
しかし、上記のコードはパスワードを更新していません。上記のコードを修正するには?そのため、完全に機能します。
私を案内してください。