C# + MySQL Connector + Vista = беда

программирование MySQL C# framework c sharp

Всем привет.
Написал простенькую программку на C# .NET 3.5 для коннекта с MySQL использую примеры с офф сайта, под ХРюшку всё работает как часы, но вот, когда дело доходит до висты, наступает беда, прога вылетает со следующей ошибкой:
-------------------------------------------------------------------------------------
Stopped working

Problem signature:
Problem Event Name: APPCRASH
Application Name: MySQLTest.exe
Application Version: 1.0.0.0
Application Timestamp: 4dccd0ea
Fault Module Name: KERNEL32.dll
Fault Module Version: 6.0.6002.18005
Fault Module Timestamp: 49e037dd
Exception Code: e0434f4d
Exception Offset: 0003fbae
OS Version: 6.0.6002.2.2.0.768.2
Locale ID: 1049
-------------------------------------------------------------------------------------
Как только не пробовал запускать, и под админом, и в режиме эмуляции, один фиг.

Привожу код, может будут какие то рекомендации?
-------------------------------------------------------------------------------------
string connectionString = "Database=myTestDB;Data Source=localhost;User Id=userName;Password=password";

using(MySqlConnection sqlConn = new MySqlConnection(connectionString)) {

try {
sqlConn.Open();

MySqlCommand sqlCmd = new MySqlCommand("select NOW() as thisDate", sqlConn);
try {
MySqlDataReader mysqlReader = sqlCmd.ExecuteReader();
if(mysqlReader.Read()) {
Console.WriteLine("MySQL date: {0}", mysqlReader[0].ToString());
}

} catch(Exception exErr) {
Console.WriteLine("ERROR: {0}", exErr.Message);
}
sqlConn.Close();

} catch(Exception exErr) {
Console.WriteLine("ERROR: {0}", exErr.Message);
}
}
-------------------------------------------------------------------------------------
Кода вроде немного, так что показатель wtf/m не должен зашкаливать :-)

Примечание:
adasiko, так собственно его и использую. Других вроде официальных коннекторов нет.

Примечание:
adasiko,
>> C# + Postgres SQL ODBC + Vista = успех
>>Я так пробовал, когда учился :)
>>ODBC драйвер кавайнее будет, Ты ж не на Java пишешь
Ну это разные производители, к примеру C# + MS SQL тоже проблем никогда не было и не будет :-)

Примечание:
Совсем забыл указать:
Использую родной коннектор Connector/Net 6.3.6

Примечание:
PetSerAl

>>Вы уверенны, что проблемма именно в коннекторе? Напишите программу которая будет содержать только работу с коннектором,
>>будет ли возникать ошибка в ней? .NET исключений не возникает? Возьмите всю программу в try/catch и/или повесте обработчик
>> на System.AppDomain.CurrentDomain.UnhandledException.

Я убрал всё, что не связанно с коннектором, сделал консольное приложение, там тупо больше нечему глючить. Пробовал всё что можно и нельзя запизнуть в try..catch, но исключение не ловится.

Примечание:
>>Приведите полный текст Вашей минимальной программы с ошибкой.
Поверьте мне. он не на много отличается приведённого кода
-------------------------------------------------------------------------------------
using System;
using MySql.Data.MySqlClient;

namespace MySQLTest {
static class Program {
static void Main() {

string connectionString = "Database=myTestDB;Data Source=localhost;User Id=userName;Password=password";

using(MySqlConnection sqlConn = new MySqlConnection(connectionString)) {

try {
sqlConn.Open();

MySqlCommand sqlCmd = new MySqlCommand("select NOW() as thisDate", sqlConn);
try {
MySqlDataReader mysqlReader = sqlCmd.ExecuteReader();
if(mysqlReader.Read()) {
Console.WriteLine("MySQL date: {0}", mysqlReader[0].ToString());
}

} catch(Exception exErr) {
Console.WriteLine("ERROR: {0}", exErr.Message);
}
sqlConn.Close();

} catch(Exception exErr) {
Console.WriteLine("ERROR: {0}", exErr.Message);
}
}

}

}
}
-------------------------------------------------------------------------------------

Примечание:
PetSerAl
>>Код, который идёт до работы с MySQL выполняется? Будет ли выведено "Before connection use" в этой программе?
Нет, программа не запускается.
Пробовал поставить коннектор на машину с вистой, но, ближе к окончанию операции выдаёт ошибку и переходит в ролбэк. Есть несколько компов с вистой, нигде не работает.

Примечание:
Вот мой проект со скомпилированным файлом
http://vint-x.net/MySQLTest.zip

Примечание:
PetSerAl

>>Вы говорите что используете Connector/Net 6.3.6, однако в Вашем проэкте указана версия 6.3.5. У меня Ваша программа тоже
выдаёт ошибку при запуске, однако, когда я создал конфигурационный файл, обязывающий использовать CLR v4.0 (.NET Framework 4), то перед завершение программа стала выдавать 'Необработанное исключение: System.IO.FileNotFoundException: Невозможно загрузить файл или сборку "MySql.Data, Version=6.3.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" или один из зависимых от них компонентов. Не удается найти указанный файл.'. Когда же я добавил перенаправление MySql.Data с версии 6.3.5.0 на версию 6.3.6.0 в конфигурационный файл, то Ваша программа стала работать корректно.

Да, вы правы, я с версией промахнулся, скачал в пятницу и ни как не думал, что за это время выйдет новая версия, поэтому и указал с сайта последнюю.
Попробую обновить коннектор, но у меня такое предчувствие, что проблема не в этом, не верю, что 6.3.5.0 нерабочая. Возможно программа у вас не работала, т.к.был установлен коннектор 6.3.6 с соответствующими библиотеками, поэтому при линковки выдало ошибку.

Примечание:
PetSerAl, В общем боюсь, что это может длиться до бесконечности, поэтому, если не против, я подастаю тебя в "личных вопросах".
Ответы:
C# + Postgres SQL ODBC + Vista = успех
Я так пробовал, когда учился :)
Погодь, это не ставил?
Кажись, что тебе надо
Вы уверенны, что проблемма именно в коннекторе? Напишите программу которая будет содержать только работу с коннектором, будет ли возникать ошибка в ней? .NET исключений не возникает? Возьмите всю программу в try/catch и/или повесте обработчик на System.AppDomain.CurrentDomain.UnhandledException.
Приведите полный текст Вашей минимальной программы с ошибкой.
Код, который идёт до работы с MySQL выполняется? Будет ли выведено "Before connection use" в этой программе?
Вы говорите что используете Connector/Net 6.3.6, однако в Вашем проэкте указана версия 6.3.5. У меня Ваша программа тоже выдаёт ошибку при запуске, однако, когда я создал конфигурационный файл, обязывающий использовать CLR v4.0 (.NET Framework 4), то перед завершение программа стала выдавать 'Необработанное исключение: System.IO.FileNotFoundException: Невозможно загрузить файл или сборку "MySql.Data, Version=6.3.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" или один из зависимых от них компонентов. Не удается найти указанный файл.'. Когда же я добавил перенаправление MySql.Data с версии 6.3.5.0 на версию 6.3.6.0 в конфигурационный файл, то Ваша программа стала работать корректно.
>Возможно программа у вас не работала, т.к.был установлен коннектор 6.3.6 с соответствующими библиотеками, поэтому при линковки выдало ошибку.
Да у меня установлен Connector/Net 6.3.6, но установлен он у меня 3-го января 2011 года. Попробуйте поставить .NET Framework 4 и откомпилировать Вашу программу под него.
Проблемма возникает из-за того, что нужная версия сборки MySql.Data не может быть обнаружена (Connector/Net не установлен или установленна не та версия). По этому возникает ошибка, когда JIT компилятор пытается скомпилировать Main. Вынесите работу с MySQL за пределы функции Main. Это позволит JIT компилятору скомпилировать функцию Main, так как она больше не содержит ссылок на сборку MySql.Data. Благодаря этому исключения будут корректно отлавливаться и отображаться. Как вариант решения, можно поместить нужную версию сборки в директорию приложения или GAC.


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.