Соединитель mysql .net не работает с проектом .net 4.0, а соединитель 6.4.3 с sprocs - PullRequest
12 голосов
/ 21 августа 2011

Я должен был восстановить машину здесь и подумал, что я просто переделаю свой веб-сайт в процессе.Я решил пойти с mvc 3, но все еще использую mysql на серверной части.

Я по существу скопировал и вставил весь свой старый код для соединения sql, чтобы вернуть результаты из хранимой процедуры mysql, и она не работает вообще,Затем я попытался создать простой sproc вставки, и он тоже не работает.Если я использую встроенный sql на MySqlCommand, он работает нормально (как выбор, так и вставка).Я думаю, что с .net 4.0 они что-то изменили в CommandType.StoredProcedure ... но я не могу сказать наверняка.

Когда я ставлю точку останова на мой командный вызов для фактического sproc, этоничего не показывает и ничего не делает.Я позвонил sprocs из CLI, и они работают так, как они должны.Возвращаясь к тому, что я говорил, я предполагаю, что в .net 4 он больше не использует команду «Call».Кто-нибудь сталкивался с этой проблемой?Если так, у вас есть решение?Есть ли какой-нибудь способ импортировать dll System.Data 2.0 в проект .net 4.0, чтобы проверить, о чем я думаю?

вот некоторый код на уровне моей базы данных:

public static BuyCollectionModel GrabBuyData(GridSettings gridSettings)
        {
            int totalRows = 0;
            BuyCollectionModel buys = new BuyCollectionModel();
            using (MySqlConnection myConnection = new MySqlConnection(AppConfig.Connection))            {

                //string sql = "SELECT 100 as totalrows, c.* FROM cBuys as c";
                //MySqlCommand myCommand = new MySqlCommand(sql, myConnection);

                MySqlCommand myCommand = new MySqlCommand("usp_GetBuys", myConnection);
                myCommand.CommandType = CommandType.StoredProcedure;
                myCommand.Parameters.AddWithValue("@startrowvar", gridSettings.PageIndex);
                myCommand.Parameters.AddWithValue("@endrowvar", gridSettings.PageSize);
                myCommand.Parameters.AddWithValue("@sortcolvar", gridSettings.SortColumn);
                myCommand.Parameters.AddWithValue("@sortordervar", gridSettings.SortOrder);
                myConnection.Open();
                using (MySqlDataReader myReader = myCommand.ExecuteReader())
                {
                    while (myReader.Read())
                    {
                        buys.Add(FillBuys(myReader, out totalRows));
                    }
                }
                myConnection.Close();
            }
            buys.TotalCount = totalRows;
            return buys;
        }

, как упоминалосьвыше, я также попытался создать простой sproc вставки, который отлично работает из CLI, но когда я вызываю его из кода, используя ExecuteNonQuery (), он ничего не делает ...

Ответы [ 2 ]

1 голос
/ 10 января 2012

Попробуйте вернуться к более старой версии разъема.У меня работает 6.3.4.Также убедитесь, что вы используете ту же версию на сервере, что и на вашей рабочей станции dev.

0 голосов
/ 20 января 2012

В любом случае можно ли импортировать dll System.Data 2.0 в проект .net 4.0 .....

Если вы работаете в Visual Studio, нажмите Project-> Add Reference -> Browse и найдите там свои dll, которые вы хотите добавить в проект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...