C# 造成';找不到可安装的ISAM';我的代码中有错误吗?
我不明白为什么我在这里遇到一个错误,说:C# 造成';找不到可安装的ISAM';我的代码中有错误吗?,c#,winforms,ms-access-2007,C#,Winforms,Ms Access 2007,我不明白为什么我在这里遇到一个错误,说:找不到可安装的ISAM。我正在尝试向Access文件添加数据,该文件似乎有问题 我不确定为什么这不起作用,因为我在删除每个条目时使用了大量严格的代码 这里有什么明显的错误吗 // Creating a query for each type of data. string sqlPC = @"INSERT INTO PersonalData([Type], [UserName], [Password])
找不到可安装的ISAM
。我正在尝试向Access文件添加数据,该文件似乎有问题
我不确定为什么这不起作用,因为我在删除每个条目时使用了大量严格的代码
这里有什么明显的错误吗
// Creating a query for each type of data.
string sqlPC = @"INSERT INTO PersonalData([Type], [UserName], [Password])
VALUES(@Type, @UserName, @Password)";
string sqlWS = @"INSERT INTO PersonalData([Type], [URL], [UserName], [Password])
VALUES(@Type, @URL, @UserName, @Password)";
string sqlSC = @"INSERT INTO PersonalData([Type], [SoftwareName], [SerialCode])
VALUES(@Type, @SoftwareName, @SerialCode)";
HashPhrase hashPhrase = new HashPhrase();
Security security = new Security();
private void InsertData(string sql)
{
string hashShortPass = hashPhrase.ShortHash(pass);
string connectionString =
@"Provider=Microsoft.ACE.OLEDB.12.0; Data Source={0};
Persist Security Info=False; Jet OLEDB: Database Password={1};";
using (OleDbConnection connection = new OleDbConnection())
{
connection.ConnectionString =
string.Format(connectionString, filePath, hashShortPass);
using (OleDbCommand command = new OleDbCommand(sql, connection))
{
OleDbParameter prmType = new OleDbParameter
("@Type", security.EncryptAES(cmbType.Text, pass, user));
command.Parameters.Add(prmType);
if (cmbType.SelectedIndex == 0)
{
OleDbParameter prmUserName = new OleDbParameter
("@UserName", security.EncryptAES
(txtUserName.Text.Trim(), pass, user));
OleDbParameter prmPassword = new OleDbParameter
("@Password", security.EncryptAES
(txtPassword.Text, pass, user));
command.Parameters.Add(prmUserName);
command.Parameters.Add(prmPassword);
}
else if (cmbType.SelectedIndex == 1)
{
OleDbParameter prmURL = new OleDbParameter
("@URL", security.EncryptAES
(txtURL.Text.Trim(), pass, user));
OleDbParameter prmUserName = new OleDbParameter
("@UserName", security.EncryptAES
(txtUserName.Text.Trim(), pass, user));
OleDbParameter prmPassword = new OleDbParameter
("@Password", security.EncryptAES
(txtPassword.Text, pass, user));
command.Parameters.Add(prmURL);
command.Parameters.Add(prmUserName);
command.Parameters.Add(prmPassword);
}
else if (cmbType.SelectedIndex == 2)
{
OleDbParameter prmSoftwareName = new OleDbParameter
("@SoftwareName", security.EncryptAES
(txtSoftwareName.Text.Trim(), pass, user));
OleDbParameter prmSerialCode = new OleDbParameter
("@SerialCode", security.EncryptAES
(txtSerialCode.Text.Trim(), pass, user));
command.Parameters.Add(prmSoftwareName);
command.Parameters.Add(prmSerialCode);
}
try
{
connection.Open();
command.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}
}
}
}
对于插入部分,有一个名为Password的字段,它是MS Access中的关键字。您的insert语句应该包含[Password],而不是Password。对于insert部分,您有一个名为Password的字段,它是MS Access中的一个关键字。您的insert语句应该包含[Password],而不是Password。我已更改:
string connectionString =
@"Provider=Microsoft.ACE.OLEDB.12.0; Data Source={0};
Persist Security Info=False; Jet OLEDB: Database Password={1};";
致:
它可以工作,我有1个多余的空间…我改变了:
string connectionString =
@"Provider=Microsoft.ACE.OLEDB.12.0; Data Source={0};
Persist Security Info=False; Jet OLEDB: Database Password={1};";
致:
它可以工作,我有1个不需要的空间…在我的情况下,我修复了以下问题: 我改变:
string conexion = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp\Fa.mdb;Database Password=xxx;";
致:
在我的情况下,我确定: 我改变:
string conexion = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp\Fa.mdb;Database Password=xxx;";
致:
就我而言,我改变了
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\\Export.accdb;Database Password=123"
作为
在我的情况下,我改变了
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\\Export.accdb;Database Password=123"
作为
它可以工作…是的,我使用括号来避免保留字的问题。如果密码在括号中,请尝试使用command.Parameters.AddWithValue(“,value”);直接。是的,我使用括号是为了避免保留字出现问题。如果密码在括号中,请尝试使用command.Parameters.AddWithValue(“,value”);直接。您的计算机上未正确安装ACE提供程序。任意尝试重新安装,请在superuser.com上寻求更多帮助@汉斯·帕桑:如果是这样的话,为什么我可以删除一个条目,但不能添加一个呢?你的机器上没有正确安装ACE提供程序。任意尝试重新安装,请在superuser.com上寻求更多帮助@汉斯·帕桑:如果是这样的话,为什么我可以删除条目,但不能添加条目?