値を読み取っRegistry key
て に保存し、string variables
これらの値をメソッドのパラメーターとして渡しNewReg
てデータベースに保存していますが、このエラー メッセージが表示you must use an updateable query
されるため、このメッセージが表示されますuser not added in database
。
どこが間違っているのですか?どうすればこれを達成できますか?
public partial class LoginForm : Form
{
DBHandling db = new DBHandling();
public LoginForm()
{
try
{
RegistryKey key = Registry.ClassesRoot;
RegistryKey registryKey = Registry.CurrentUser.OpenSubKey(@"Software\StudentExm");
string usrname = registryKey.GetValue("UserName").ToString();
string password = registryKey.GetValue("Password").ToString();
string emailId = registryKey.GetValue("EmailID").ToString();
string contctno = registryKey.GetValue("ContactNo").ToString();
string regDate = registryKey.GetValue("RegDate").ToString();
registryKey.Close();
if (NewReg(usrname, password, emailId, contctno, regDate))
{
MessageBox.Show("User Name: " + usrname + "\n" +
"Password: " + password + "\n" +
"Email ID: " + emailId + "\n" +
"Contact No: " + contctno + "\n" +
"Reg Date: " + regDate);
}
else
{
MessageBox.Show("User not added in the database.");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
}
DBHandling クラスの NewReg メソッド
public bool NewReg(string usrName, string passwrd, string emailID, string contactNo,string regdat)
{
bool flag = false;
try
{
//string sql = "INSERT INTO test(nametest,pass,email,contact,regdate) Values('" + usrName + "','" + passwrd + "','" + emailID + "','" + contactNo + "','" + System.DateTime.Now + "')";
string sql = "INSERT INTO UserInfo([UserName],[Password],[email],[contact],[regdate]) Values(@UserInfo,@Password,@email,@contact,@regdate)";
cmd = new OleDbCommand(sql, acccon);
cmd.Parameters.AddRange(new[] {
new OleDbParameter("@UserName", usrName),
new OleDbParameter("@Password", passwrd),
new OleDbParameter("@EmailID", emailID),
new OleDbParameter("@ContactNo", contactNo),
new OleDbParameter("@RegDate", regdat)
});
cmd.ExecuteNonQuery();
flag = true;
}
catch (Exception err)
{
MessageBox.Show(err.Message.ToString());
}
return flag;
}
助けてくれてありがとう