mysql .net连接器不能与.net 4.0项目和带有sprocs的连接器6.4.3一起使用

时间:2011-08-20 23:53:45

标签: mysql asp.net-mvc stored-procedures

我不得不在这里重建一台机器,并认为我只是在这个过程中重做我的网站。我决定使用mvc 3,但仍然在后端使用mysql。

我基本上复制并粘贴了所有用于sql连接的旧代码,以从mysql存储过程返回结果,但它根本不起作用。然后我尝试创建一个简单的插入sproc,它也不起作用。如果我在我的MySqlCommand上使用内联sql,它可以正常工作(选择和插入)。我想用.net 4.0他们在CommandType.StoredProcedure上改了一些东西......但我不能肯定地说。

当我在命令调用实际的sproc时设置断点时,它没有显示任何内容,也没有实际执行任何操作。我从CLI调用了sprocs,他们正在按照他们的意愿工作。回到我的意思,我猜测.net 4,它不再使用“调用”命令了。有人遇到过这个问题吗?如果是这样,你有解决方案吗?反正有没有将System.Data 2.0 dll导入.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;
        }

如上所述,我也尝试创建一个从CLI运行良好的简单插入sproc,但是当我使用ExecuteNonQuery()从代码中调用它时,它什么都不做......

2 个答案:

答案 0 :(得分:1)

尝试恢复旧版本的连接器。对我有用的是6.3.4。另外,请确保在服务器上使用与开发工作站上完全相同的版本。

答案 1 :(得分:0)

  

无论如何将System.Data 2.0 dll导入.net 4.0项目.....

如果您正在运行visual studio,请单击Project->添加参考 - >浏览并找到要添加到项目中的dll。