Я хочу вставить текст в свою базу данных Access (accdb) в C# - windows приложении проекта. "Accdb". Он корректно работает только на моем компьютере, если я запускаю exe-файл, который находится в папке с исходным кодом моего проекта, но проблема в том, что когда я создаю установочный файл и установил его, а затем запускаю программное обеспечение, он открывается, но когда я нажимаю на кнопку вставки, это не могло сработать. Проблема с базой данных (местоположение / доступ), но я не знаю, как я могу ее решить. Кто-нибудь знает, как решить эту проблему?
Ошибка: Произошло необработанное исключение в вашем приложении. ... "Необработанное исключение произошло в вашем приложении. Если вы нажмете" Продолжить ", приложение проигнорирует эту ошибку и попытается продолжить. Если вы нажмете" Выйти ", приложение будет закрыто немедленно. Подробную информацию о вызове просто смотрите в конце этого сообщения. отладка по времени (JIT) вместо этого диалогового окна.
************** Текст исключения ************** System.Data.OleDb.OleDbException (0x80004005): Операция muss eine aktualisierbare Abfrage verdenden. На System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling (OleDbHResult hr), ObjectDBDBT. System.Data.OleDb.OleDbCommand.ExecuteCommandText (Object & executeResult) в System.Data.OleDb.OleDbCommand.ExecuteCommand (поведение CommandBehavior, Object & executeResult)
Вот мой код:
public Form1()
{
InitializeComponent();
}
public static string GetDBConnection()
{
try
{
string dbExecPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Test11.accdb");
return $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={ dbExecPath }";
}
catch (Exception)
{
return string.Empty;
}
}
OleDbConnection con = new OleDbConnection(GetDBConnection());
OleDbCommand cmd;
private void button1_Click(object sender, EventArgs e)
{
OleDbCommand cmd = new OleDbCommand("insert into[Table](name, code) VALUES(@name, @code)", con);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@name", textBox1.Text);
cmd.Parameters.AddWithValue("@code", textBox2.Text);
con.Open();
System.Windows.Forms.MessageBox.Show("An Item has been successfully added", "Caption", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
int i = 0;
i = cmd.ExecuteNonQuery();
if (i > 0)
{
MessageBox.Show("Inserted");
DisplayData();
}
else
{
MessageBox.Show("Not Inserted");
}
con.Close();
///////
}