因此,在我的window onload方法中,我使用从数据库中检索到的值预填充网格。下面是窗口加载的方法:
Private Sub winMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
''#Load Grid
Dim dt As New DataTable
With dt
.Columns.Add("Name")
.Columns.Add("Frequency")
.Columns.Add("Percent Spent")
.Columns.Add("Started")
.Columns.Add("Ends")
End With
Dim Budgets As New List(Of BudgetManager.DTO.Budget)
Budgets = BudgetManager.Process.Budget.GetAllBudgets()
Dim values(5) As String
For Each budget In Budgets
values(0) = budget.Name
values(1) = BudgetManager.Lookup.GetLookupTextById(budget.FrequencyId)
Dim total As Double = 0.0
Dim spent As Double = 0.0
For Each category In budget.Categories
total += category.Amount
spent += category.Spent
Next
values(2) = FormatPercent(spent / total)
values(3) = budget.StartDate.ToString
values(4) = budget.EndDate.ToString
dt.Rows.Add(values)
Next
gridBudget.DataSource = dt
End Sub
当我按下F5进行调试时,程序加载,网格仍然是空的,就像没有数据源一样。当我尝试单步执行代码时,它实际上到达了
Budgets = BudgetManager.Process.Budget.GetAllBudgets()
然后跨过这条线……窗口加载,并且在方法中不会再进一步。上面这行代码所做的最终是对一个sqlite数据库进行一些SQL执行调用,代码到达调用execute方法的点,但甚至还没有进行查询。直到代码中的那个点被正确设置为止的所有对象(通过调试和检查局部变量找到)。
会发生什么?
编辑:
例外情况是:
“混合模式程序集是根据运行时的版本'v2.0.50727'生成的,如果没有其他配置信息,则无法在4.0运行时中加载。
这到底是什么意思?哈