Всем привет.
Написал простенькую программку на 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, В общем боюсь, что это может длиться до бесконечности, поэтому, если не против, я подастаю тебя в "личных вопросах".