【发布时间】:2012-02-07 22:02:46
【问题描述】:
我正在使用 C#、winform 和 Mysql。 (Visual Studio 2010)。
在我的项目中,所有 menustrip 项都是不可见的。在登录时,它可以看到哪个 menustrip 项用户权限。为此,我看不见所有菜单条,。我为可见的菜单栏项目编码。
但它需要太多时间。超过 5 分钟。所以我有几个问题。
- 我如何找到这个编码执行时间? (下面是我的代码)....
- 有什么特殊的工具吗?
- 如何使用有效的代码减少时间?
private void menuActive(ToolStripItemCollection items) { hp.getConnStr(); MySqlConnection connection = new MySqlConnection(hp.myConnStr); MySqlCommand command = connection.CreateCommand(); MySqlDataReader Reader; command.CommandText = "select menu_key from mcs_menu_rights where userid ='"+userId+"'"; connection.Open(); Reader = command.ExecuteReader(); while (Reader.Read()) { foreach (ToolStripMenuItem item in items) { if (item.Name == Reader[0].ToString()) { item.Visible = true; } else { menuActive(item.DropDown.Items); } } } connection.Close(); }
【问题讨论】:
-
一种方法是使用称为分析器的工具。 .NET 有很多可用的。
-
这段代码还能工作吗?您在 SqlDataReader 仍处于打开状态时递归调用该函数...
-
@zach,他创建了多个阅读器和连接,如果 sql server 支持多个连接,它会工作得很好。
-
@ZachGreen 如果启用MARS 可能会起作用
标签: c# performance visual-studio-2010