SQL отлично работает, когда я отлаживаю проект, но как только я делаю установку и устанавливаю его, он показывает ошибку?
Я новичок и с трудом нахожусь в поиске решения.Я использую vb.net и ms access в качестве базы данных. Вот в чем моя проблема
SQL отлично работает, когда я отлаживаю проект, но как только я делаю установку и устанавливаю его, он показывает ошибку?
operation must use an updateable
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click DateTimePicker1.Refresh() DateTimePicker1.Value = DateTime.Now DATEANDTIMEtxt.Text = CType(DateTimePicker1.Value, String) If TextBox4.Text = "" Or TextBox5.Text = "" Then MsgBox("plz fill the info") Else Try Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\DB_HR.accdb;Jet OLEDB:DATABASE PASSWORD=dbhr123;") Dim Str As String = "Insert Into LOGIN([YOUR_NAME],[PASSWORD],[DATEANDTIME]) Values (?,?,?)" Dim cmd As New OleDbCommand(Str, conn) cmd.Parameters.Add(New OleDbParameter("YOUR_NAME", CType(TextBox4.Text, String))) cmd.Parameters.Add(New OleDbParameter("PASSWORD", CType(TextBox5.Text, String))) cmd.Parameters.Add(New OleDbParameter("DATEANDTIME", CType(DATEANDTIMEtxt.Text, String))) conn.Open() cmd.ExecuteNonQuery() '<------Error say's it was here MsgBox("Create success") conn.Close() Panel1.Visible = False TextBox4.Clear() TextBox5.Clear() TextBox4.Select() TextBox1.Enabled = True TextBox2.Enabled = True Button1.Enabled = True Button2.Enabled = True TextBox1.Text = "" TextBox1.Select() Catch ex As Exception MsgBox(ex.ToString()) End Try End If End Sub
это и есть ошибка
Система.Данные.Oledb для.OledbExeption (0x80004005): операция должна использовать обновляемый запрос.
в WindowsApp1.Form1.Button4_Click(отправитель объекта, EventArgs e) в C:\Users\Alex\Desktop\HR_appP2 w password\WindowsApp1\WindowsApp1\Form1.vb:строка 112
Что я уже пробовал:
Я уже попробовал это сделать
I change my application in Administrator Privilege Change Level From <requestedExecutionLevel level="asInvoker" uiAccess="false" /> To <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
I have checked the permissions on the folder that contains the Access file.
Так ли это, как я строю его?
Dave Kreskowiak
Не видя кода, который создает запрос и выполняет его, невозможно сказать вам, что вы сделали неправильно.
Кроме того, если вы поместите свою базу данных Access в ту же папку, что и исполняемый файл, в разделе Program Files, эта папка будет доступна только для чтения всем обычным пользователям. Вы должны переместить свою базу данных Access в более подходящую папку, например в разделе C:\ProgramData\SomeFolder.
Jamim
Спасибо, что предложили опубликовать код. Я уже отправил код
Jochen Arndt
Очень вероятно, что это проблема привилегий. При выполнении заявки в качестве администратора она будет работать в большинстве случаев, что не рекомендуется.
Вместо этого используйте каталог, в котором пользователь, выполняющий приложение, имеет доступ на запись, как это было предложено Дейвом.
Если файл базы данных уже существует (например, при копировании шаблона или пустой базы данных при установке), убедитесь также, что сам файл имеет аналогичные правила доступа (может быть записан пользователем(АМИ)).
RedDk
0x80004005 -> Если вы посмотрите здесь:
https://www.google.com/search-что?м=система.Данных.OleDb.OleDbException+(0x80004005)+site:social.msdn.microsoft.com&num=100&sa=X&ved=0ahUKEwjn5vXAzpzcAhWBrZQKHbuDDX4qrqiimygemaa&biw=975&bih=886
.. вы увидите, что эта ошибка меньше описывает фактический сбой в коде, который вы проталкиваете через OleDb, и больше общего сбоя (со стороны OleDb dev as MS, верно?) ... и в лучшем случае должен быть помечен как губа какой-то каскадной ерунды. Я не собираюсь сам прокручивать типы ошибок. Я позволю тебе это сделать. Удачи.
Jamim
Я уже решил эту проблему, просто забыл поискать App.Config в любом случае спасибо ^_^. Как Новичок,мы действительно ценим экспертную помощь, а также статью, ссылки и другие материалы, которые они дали