我正在读取Registry key
值并将它们存储在string variables
中,并将这些值作为参数传递给NewReg
方法以将它们存储到数据库中,但是我收到此错误消息{{ 1}}因此此消息you must use an updateable query
,
user not added in database
DBHandling类中的NewReg方法
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());
}
}
}
提前感谢您提供任何帮助
答案 0 :(得分:0)
正如我在评论中所说,这是一个文件权限问题。
当您尝试执行UPDATE或更新时,会发生此错误 其他一些改变数据库中信息的行动。
发生此错误是因为dataobjects ado或ADO.NET是什么 由于不足,无法写入Microsoft Access数据库 写入/修改权限,可以通过授予轻松修复 读/写IUSR_和IWAM _。
当匿名Web用户需要修改Microsoft Access时,
IUSR_<machineName>
和IWAM_<machineName>
成为焦点 数据库&amp;这样做时,Jet会创建一个.ldb文件来处理数据库 锁定。如果上面提到的2个用户没有必要 权限,锁定文件未创建&amp;最终是微软 Access数据库无法修改..
<强> FIX:强>
要解决此问题,请右键单击包含该文件夹的文件夹 Microsoft Access数据库&amp;选择属性。使用“安全”选项卡 资源管理器调整此文件夹的属性以使Internet成为可能 来宾帐户具有正确的可写权限。
还要确保MDB文件本身未标记为只读,并且 您没有打开MDB文件;特别是在独家模式; 尝试从ASP
到达Microsoft Access数据库时
答案 1 :(得分:0)
我猜这个问题是因为这条线:
string usrname = registryKey.GetValue("UserName") + Environment.NewLine;
代码U可以像这样改变并尝试。
string usrname = registryKey.GetValue("UserName").ToString();
当您使用+ Environment.NewLine;
分配值时。它不应该是。,
这就是you must use an updateable query
错误消息的原因。
这是您的自定义消息user not added in database
。由于条件失败,它会显示出来。
希望它有所帮助。,:)
答案 2 :(得分:0)
试试这样
string keyName = @"HKEY_CURRENT_USER\...\Node[Name]";
string valueName = "Value"; // Value in registry Ex. RegDate
object Obj = Registry.GetValue(keyName, valueName, "Exist");
if (Obj == null)
{
}
else
{
Do your Code ....
}