我不得不在这里重建一台机器,并认为我只是在这个过程中重做我的网站。我决定使用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()从代码中调用它时,它什么都不做......
答案 0 :(得分:1)
尝试恢复旧版本的连接器。对我有用的是6.3.4。另外,请确保在服务器上使用与开发工作站上完全相同的版本。
答案 1 :(得分:0)
无论如何将System.Data 2.0 dll导入.net 4.0项目.....
如果您正在运行visual studio,请单击Project->添加参考 - >浏览并找到要添加到项目中的dll。