|
|
|
Неопознанная ошибка соединения с бд
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
Вижал выдаёт неопознанную ошибку в данном коде: string sql = «SELECT * FROM WORDS»; string connectionString; connectionString = «Provider=Microsoft.Jet.OLEDB.4.0;» + @»Data Source= D:/бд/english.mdb»; OleDbConnection connection = new OleDbConnection(connectionString); !!! connection.Open();!!! OleDbCommand command = new OleDbCommand(sql, connection); OleDbDataReader dataReader = command.ExecuteReader(); !!! выделено место ошибки. полный код тут using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.OleDb; namespace Diplom { public partial class Form1 : Form { public Form1() { InitializeComponent(); dbacces.acces(); } } public class dbacces { public static void acces() { //список для английских слов List<string> englw = new List<string>(); // Формируем запрос к базе данных — // считываем английские слова string sql = «SELECT * FROM WORDS»; string connectionString; connectionString = «Provider=Microsoft.Jet.OLEDB.4.0;» + @»Data Source= D:/бд/english.mdb»; OleDbConnection connection = new OleDbConnection(connectionString); connection.Open(); OleDbCommand command = new OleDbCommand(sql, connection); OleDbDataReader dataReader = command.ExecuteReader(); // Организуем циклический перебор полученных записей // Заносим слова в список while (dataReader.Read()) { englw.Add(dataReader[«Englwords»].ToString()); } Form1 Sform1 = new Form1(); Sform1.button1.Text = englw[1]; // Очистка dataReader.Close(); connection.Close(); } } } В чём проблема? по-мимо кривых рук конечно=) |
coder |
|
Там текст ошибки «Неопознанная ошибка» или что-то другой? |
Patrool |
|
Цитата coder @ 17.02.12, 12:30 Там текст ошибки «Неопознанная ошибка» или что-то другой? вот что пишет слеши вроде те |
kanes |
|
Слешы в connectionString не те. должны быть |
Patrool |
|
Цитата kanes @ 17.02.12, 18:38 Слешы в connectionString не те. должны быть Поменял, не помогло, ошибка та же |
NetVir |
|
Senior Member Рейтинг (т): 23 |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- .NET: Базы данных
- Следующая тема
[ Script execution time: 0,0299 ] [ 16 queries used ] [ Generated: 9.06.23, 00:08 GMT ]
I am getting the below exception while connecting to the Excel file using OLEDb connection.
Microsoft JET Database Engine Unspecified error at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) at
System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection,
DbConnectionPoolGroup poolGroup) at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.OleDb.OleDbConnection.Open() at LessonsLearntCR.ExcelDlEvntResClass.<>c__DisplayClass4.b__1()
This error is happening very inconsistently. Some day it will work fine. Suddenly this error appears and it will be there for some time(may be a
day or more). If we do IIS reset, it will start working again
In many of the articles, it has been told that this is the common error we are getting if we are using Microsoft Jet OLEDb
Request you to provide some guidance to move ahead on this issue
I have checked permissions on various temp folders that JET supposedly uses, and permissions are fine. The most frustrating thing is that it will work for several times in a row, and then start failing every time (until IISREST).
The piece of code I am using is below:
public DataSet ReadExcel(string filePath, string SqlCommand)
{
using (OleDbConnection xcn = new OleDbConnection())
{
xcn.ConnectionString = «Provider=Microsoft.Jet.OLEDB.4.0;Data Source=»
+ filePath
+ «;Extended Properties=»Excel 8.0;IMEX=1″;pooling=false;»;
xcn.Open();
DataSet data = new DataSet();
using (OleDbDataAdapter da = new OleDbDataAdapter(SqlCommand, SqlCommand))
{
da.Fill(data);
}
return data;
}
}
-
Перемещено
25 августа 2010 г. 7:21
(From:Visual C# General)
- Remove From My Forums
-
Question
-
User189888063 posted
Hai all,
Im a new comer to this community.I searched lots of bulletins n forums and tried all those steps,but could not find a solution to my problem.
All usually working before well, but accidentally crashed by undetermined
reason:Databases connections databases stop working under all web sites on web server.
I’ve given all permissions.
Affect only IIS applications.
if trying to open MS Access 2000 databases:
Microsoft JET Database Engine error ‘80004005’
Unspecified errorIn connection string, while try to work with MS Access db:
Set XXX = Server.CreateObject («ADODB.Connection»)
XXX.ConnectionString = «Provider=Microsoft.Jet.OLEDB.4.0;Data Source=XXXXX»
XXX.CursorLocation = 3 // could be vary
XXX.CommandTimeout = 60
XXX.Open <— ERROR HERE
This is a very urgent issue for me to proceed in my project.Help me please.
thanks
Ramya
Answers
-
-
Marked as answer by
Tuesday, September 28, 2021 12:00 AM
-
Marked as answer by
-
User189888063 posted
Hai Jeff and steve,
Thanks for all ur support in getting my problem resolved. Finally, i got it resolved. As i told before it was becos of something i changed in authentication settings of IIS. Now, after enabling basic authentication and disabling all other authentications,
i got evrythng working as before.Thanks again for ur kind support
Cheers
Ramya
-
Marked as answer by
Anonymous
Tuesday, September 28, 2021 12:00 AM
-
Marked as answer by
07.05.10 — 07:21
Сделал экспорт эл. накладной в самописную конфигурацию из файла ДБФ. Но одно из полей в этом файле имеет имя более 8 символов, и 1с выкидывает ошибку… Можно ли это каким-нибудь образом обойти?
Спасибо
1 — 07.05.10 — 07:23
А заранее файл обработать нельзя?
2 — 07.05.10 — 07:24
имя поля скорректировать и вуаля!
3 — 07.05.10 — 07:24
в самописной конфигурации поле никак увеличить?
4 — 07.05.10 — 07:24
Насколько я помню, никак не обойти, переделывайте имена полей до 8-ми символов. И вообще отказывайтесь от ДБФ — для импорта экспорта у восьмерки есть xml
5 — 07.05.10 — 07:27
ДБФ-ку можно обрабатывать не в 1с первоначально. В том числе можно и на автомате настроить преобразование.
6 — 07.05.10 — 07:28
(4) я бы отказался, но эл.документы только в ДБФ приходят.
Или может как-то сделать что-бы в командной строке имя этого поля переименовать.
Чтобы в обработке 1с это выполнялось.
7 — 07.05.10 — 07:29
Экселем открывается? (0)
8 — 07.05.10 — 07:30
(7) да, открывается
9 — 07.05.10 — 07:36
ado попробовать
10 — 07.05.10 — 07:36
Почему не хочешь при загрузке в базу обрезать? Например Прав(Строка, КолСимв)
11 — 07.05.10 — 07:36
Вчера доделал загрузку данных из дбф, оказывается мне еще и повезло с длиной полей.
(0) ты как к XBASE-объекту обращаешься?
12 — 07.05.10 — 07:38
(11) вот таким образом:
Файл = Новый XBASE;
Файл.ОткрытьФайл(Диалог.ПолноеИмяФайла,,0);
Файл.Кодировка = КодировкаXBase.OEM;
13 — 07.05.10 — 07:39
(12) забей на Новый XBASE
кури ADODB
14 — 07.05.10 — 07:40
(12) четко, прям как у меня, даже кодировка DOS ))
Я думаю (9) и (13) правы в этом случае
(10) а к полю он как будет обращаться?
15 — 07.05.10 — 07:42
Нет маленького примерчика с ADODB?
16 — 07.05.10 — 07:43
Судя по тому как ADO позволяет работать с XLS-доками, может быть и для DBF это прокатит, вот пример:
MyCon=Новый COMОбъект ("ADODB.Connection"); MyCon.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ПутьКФайлу+";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"""); MyRst=Новый COMОбъект ("ADODB.Recordset"); MyStr="select * from [Лист1$]"; MyRst.Open (MyStr, MyCon, 2, 3)//adOpenDynamic, adLockOptimistic Пока НЕ MyRst.EOF() Цикл ... MyRst.MoveNext(); КонецЦикла; MyRst.Close(); MyCon.Close();
17 — 07.05.10 — 07:44
18 — 07.05.10 — 07:44
Прикол в том что ему главное наличие винды начиная с XP и старше, дрова для самих файлов не нужны.
19 — 07.05.10 — 07:46
(17) спасибо гуру, много полезного по ссылке!
20 — 07.05.10 — 07:47
21 — 07.05.10 — 07:47
Спасибо — сегодня попробую
Что и как получится — обязательно расскажу
22 — 07.05.10 — 07:48
(20) после этого должно обязательно получиться!!!
23 — 07.05.10 — 07:51
(21) [Что и как получится — обязательно расскажу]
это лишние
24 — 07.05.10 — 13:25
Имеем следующий код:
Path=»c:»;
DBConn = Новый COMОбъект(«ADODB.Connection»);
DBConn.Open(«Provider=Microsoft.Jet.OLEDB.4.0;Data Source=»+Path+»;Extended Properties=DBASE IV»);
Persons = DBConn.Execute(«SELECT * FROM [736582.DBF]»);
При обработке вылетает ошибка:
Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft JET Database Engine): Неопознанная ошибка
Persons = DBConn.Execute(«SELECT * FROM [736582.DBF]»);
Такой файл существует, и обрабатыается и с помощью кода XBASE обрабатывается без ошибок…
В тоже вермя с помощью ADODB другой файл обрабатывается без ошибок.
В чем может быть проблема, Может в версиях DBASE?
25 — 07.05.10 — 13:54
можно ли программн проверить к какому типу относится открываемый файл?
26 — 07.05.10 — 14:03
(25) можно, например по хэдеру файла
или тупо обернуть Execute в Попытка и перебрать все типы dbf
27 — 07.05.10 — 14:32
(26) попробовать перебрать такие значения?
«;Extended Properties=DBASE IV»
«;Extended Properties=DBASE V»
«;Extended Properties=DBASE VI»
28 — 07.05.10 — 14:57
shuhard
29 — 07.05.10 — 15:06
(27) не верю, нет в природе BASE VI
[ Script execution time: 0,0299 ] [ 16 queries used ] [ Generated: 9.06.23, 00:08 GMT ]
I am getting the below exception while connecting to the Excel file using OLEDb connection.
Microsoft JET Database Engine Unspecified error at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) at
System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection,
DbConnectionPoolGroup poolGroup) at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.OleDb.OleDbConnection.Open() at LessonsLearntCR.ExcelDlEvntResClass.<>c__DisplayClass4.b__1()
This error is happening very inconsistently. Some day it will work fine. Suddenly this error appears and it will be there for some time(may be a
day or more). If we do IIS reset, it will start working again
In many of the articles, it has been told that this is the common error we are getting if we are using Microsoft Jet OLEDb
Request you to provide some guidance to move ahead on this issue
I have checked permissions on various temp folders that JET supposedly uses, and permissions are fine. The most frustrating thing is that it will work for several times in a row, and then start failing every time (until IISREST).
The piece of code I am using is below:
public DataSet ReadExcel(string filePath, string SqlCommand)
{
using (OleDbConnection xcn = new OleDbConnection())
{
xcn.ConnectionString = «Provider=Microsoft.Jet.OLEDB.4.0;Data Source=»
+ filePath
+ «;Extended Properties=»Excel 8.0;IMEX=1″;pooling=false;»;
xcn.Open();
DataSet data = new DataSet();
using (OleDbDataAdapter da = new OleDbDataAdapter(SqlCommand, SqlCommand))
{
da.Fill(data);
}
return data;
}
}
-
Перемещено
25 августа 2010 г. 7:21
(From:Visual C# General)
- Remove From My Forums
-
Question
-
User189888063 posted
Hai all,
Im a new comer to this community.I searched lots of bulletins n forums and tried all those steps,but could not find a solution to my problem.
All usually working before well, but accidentally crashed by undetermined
reason:Databases connections databases stop working under all web sites on web server.
I’ve given all permissions.
Affect only IIS applications.
if trying to open MS Access 2000 databases:
Microsoft JET Database Engine error ‘80004005’
Unspecified errorIn connection string, while try to work with MS Access db:
Set XXX = Server.CreateObject («ADODB.Connection»)
XXX.ConnectionString = «Provider=Microsoft.Jet.OLEDB.4.0;Data Source=XXXXX»
XXX.CursorLocation = 3 // could be vary
XXX.CommandTimeout = 60
XXX.Open <— ERROR HERE
This is a very urgent issue for me to proceed in my project.Help me please.
thanks
Ramya
Answers
-
-
Marked as answer by
Tuesday, September 28, 2021 12:00 AM
-
Marked as answer by
-
User189888063 posted
Hai Jeff and steve,
Thanks for all ur support in getting my problem resolved. Finally, i got it resolved. As i told before it was becos of something i changed in authentication settings of IIS. Now, after enabling basic authentication and disabling all other authentications,
i got evrythng working as before.Thanks again for ur kind support
Cheers
Ramya
-
Marked as answer by
Anonymous
Tuesday, September 28, 2021 12:00 AM
-
Marked as answer by
07.05.10 — 07:21
Сделал экспорт эл. накладной в самописную конфигурацию из файла ДБФ. Но одно из полей в этом файле имеет имя более 8 символов, и 1с выкидывает ошибку… Можно ли это каким-нибудь образом обойти?
Спасибо
1 — 07.05.10 — 07:23
А заранее файл обработать нельзя?
2 — 07.05.10 — 07:24
имя поля скорректировать и вуаля!
3 — 07.05.10 — 07:24
в самописной конфигурации поле никак увеличить?
4 — 07.05.10 — 07:24
Насколько я помню, никак не обойти, переделывайте имена полей до 8-ми символов. И вообще отказывайтесь от ДБФ — для импорта экспорта у восьмерки есть xml
5 — 07.05.10 — 07:27
ДБФ-ку можно обрабатывать не в 1с первоначально. В том числе можно и на автомате настроить преобразование.
6 — 07.05.10 — 07:28
(4) я бы отказался, но эл.документы только в ДБФ приходят.
Или может как-то сделать что-бы в командной строке имя этого поля переименовать.
Чтобы в обработке 1с это выполнялось.
7 — 07.05.10 — 07:29
Экселем открывается? (0)
8 — 07.05.10 — 07:30
(7) да, открывается
9 — 07.05.10 — 07:36
ado попробовать
10 — 07.05.10 — 07:36
Почему не хочешь при загрузке в базу обрезать? Например Прав(Строка, КолСимв)
11 — 07.05.10 — 07:36
Вчера доделал загрузку данных из дбф, оказывается мне еще и повезло с длиной полей.
(0) ты как к XBASE-объекту обращаешься?
12 — 07.05.10 — 07:38
(11) вот таким образом:
Файл = Новый XBASE;
Файл.ОткрытьФайл(Диалог.ПолноеИмяФайла,,0);
Файл.Кодировка = КодировкаXBase.OEM;
13 — 07.05.10 — 07:39
(12) забей на Новый XBASE
кури ADODB
14 — 07.05.10 — 07:40
(12) четко, прям как у меня, даже кодировка DOS ))
Я думаю (9) и (13) правы в этом случае
(10) а к полю он как будет обращаться?
15 — 07.05.10 — 07:42
Нет маленького примерчика с ADODB?
16 — 07.05.10 — 07:43
Судя по тому как ADO позволяет работать с XLS-доками, может быть и для DBF это прокатит, вот пример:
MyCon=Новый COMОбъект ("ADODB.Connection"); MyCon.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ПутьКФайлу+";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"""); MyRst=Новый COMОбъект ("ADODB.Recordset"); MyStr="select * from [Лист1$]"; MyRst.Open (MyStr, MyCon, 2, 3)//adOpenDynamic, adLockOptimistic Пока НЕ MyRst.EOF() Цикл ... MyRst.MoveNext(); КонецЦикла; MyRst.Close(); MyCon.Close();
17 — 07.05.10 — 07:44
18 — 07.05.10 — 07:44
Прикол в том что ему главное наличие винды начиная с XP и старше, дрова для самих файлов не нужны.
19 — 07.05.10 — 07:46
(17) спасибо гуру, много полезного по ссылке!
20 — 07.05.10 — 07:47
21 — 07.05.10 — 07:47
Спасибо — сегодня попробую
Что и как получится — обязательно расскажу
22 — 07.05.10 — 07:48
(20) после этого должно обязательно получиться!!!
23 — 07.05.10 — 07:51
(21) [Что и как получится — обязательно расскажу]
это лишние
24 — 07.05.10 — 13:25
Имеем следующий код:
Path=»c:»;
DBConn = Новый COMОбъект(«ADODB.Connection»);
DBConn.Open(«Provider=Microsoft.Jet.OLEDB.4.0;Data Source=»+Path+»;Extended Properties=DBASE IV»);
Persons = DBConn.Execute(«SELECT * FROM [736582.DBF]»);
При обработке вылетает ошибка:
Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft JET Database Engine): Неопознанная ошибка
Persons = DBConn.Execute(«SELECT * FROM [736582.DBF]»);
Такой файл существует, и обрабатыается и с помощью кода XBASE обрабатывается без ошибок…
В тоже вермя с помощью ADODB другой файл обрабатывается без ошибок.
В чем может быть проблема, Может в версиях DBASE?
25 — 07.05.10 — 13:54
можно ли программн проверить к какому типу относится открываемый файл?
26 — 07.05.10 — 14:03
(25) можно, например по хэдеру файла
или тупо обернуть Execute в Попытка и перебрать все типы dbf
27 — 07.05.10 — 14:32
(26) попробовать перебрать такие значения?
«;Extended Properties=DBASE IV»
«;Extended Properties=DBASE V»
«;Extended Properties=DBASE VI»
28 — 07.05.10 — 14:57
shuhard
29 — 07.05.10 — 15:06
(27) не верю, нет в природе BASE VI
В Октябре был выпущен ряд обновлений, относящихся к категории обновлений безопасности Windows, установка которых может вызвать ошибки в приложениях, использующих программный интерфейс устаревшего Поставщика OLE DB для Jet (Microsoft.Jet.OLEDB.4.0), например, при попытке программного доступа в Microsoft Office Excel или Access версии 2007 и более старых версий Office или сторонних приложений, таких как 1С, самописных АРМ-ов и т.п., использующих данный интерфейс.
Перечень обновлений (то, что удалось найти), установка которых порождает проблему :
Windows 7, Windows Server 2008 R2 | KB4041681 , KB4041678 , KB4041686 |
Windows Server 2012 | KB4041690 |
Windows 8.1, Windows Server 2012 R2 | KB4041693 , KB4041687 |
Windows 10 1507 (RTM) | KB4042895 |
Windows 10 1607, Windows Server 2016 | KB4041691 |
Windows 10 1703 | KB4041676 |
Ошибка, которая может возникать при попытке вызова Поставщика OLE DB для Jet после установки данных обновлений:
Unexpected error from external database driver (1). (Microsoft JET Database Engine)
...или...
"Непредвиденная ошибка с внешнего драйвера базы данных (1). (Microsoft JET Database Engine)".
Другие примеры ошибок, которые могут возникать в данной ситуации:
[Microsoft][Driver ODBC Excel] Reserved error (-5016).
[Microsoft][ODBC Excel Driver] General Warning Unable to open registry key 'Temporary (volatile) Jet DSN for process
Собственно, данная проблема описана в соответствующих статьях KB к выше обозначенным обновлениям в перечне известных проблем:
В качестве решения проблемы предлагается использование более современного Поставщика, например Microsoft Access Database Engine 2010 (Microsoft.ACE.OLEDB.12.0) или новее.
Если же оперативное изменение Ваших приложений, использующих Microsoft.Jet.OLEDB.4.0, невозможно, то лучше воздержаться от установки выше обозначенных обновлений, по крайней мере, до тех пор, пока не будут выпущены «обновления на обновления», исправляющие данную проблему.
По некоторой информации совсем недавно были выпущены обновления, направленные на решение проблемы для Windows 7 и Windows 8.1, но, по уже традиционному для Microsoft сценарию, эти обновления оказались кривыми и в данный момент они недоступны для загрузки:
Windows 7, Windows Server 2008 R2 | KB4052234 |
Windows Server 2012 | KB4052235 |
Windows 8.1, Windows Server 2012 R2 | KB4052233 |
По информации, доступной в статье «Unexpected error from external database driver (1). (Microsoft JET Database Engine)» after applying October security updates., где описывается проблема и разные варианты её решения, перевыпуск недоступных на данный момент обновлений со стороны Microsoft планируется на 14 Ноября.
Доступные обновления, исправляющие проблему, которые мне удалось обнаружить на данный момент, таковы:
Надеюсь данная заметка поможет разобраться Вам в сложившейся ситуации и даст направление для решения проблемы.