【发布时间】:2021-11-02 15:25:51
【问题描述】:
不确定我的问题表述是否正确,但我会详细说明。
我的代码应该将程序中计算的百分比值与 Access 数据库中的相应年级界限进行比较。然后,它会根据课程和等级界限输出字母等级(例如 A*、A、B、C)。但是,我对此的 sql 查询似乎不起作用。
错误消息:“从字符串“SELECT GradeLetter FROM tblGrade”到类型“Double”的转换无效。”
我确信这是一个非常简单的修复方法,但到目前为止我无法在任何地方找到正确的信息,因此我们将不胜感激。
Private Sub txtDenominator_TextChanged(sender As Object, e As EventArgs) Handles txtDenominator.TextChanged
Dim Numerator As Integer
Dim Denominator As Integer
Dim Percentage As Double
Numerator = txtNumerator.Text
Denominator = txtDenominator.Text
If (Numerator > 0) And (Denominator > 0) And (Numerator <= Denominator) Then
Percentage = (Numerator / Denominator) * 100
Else
Percentage = 0
End If
MsgBox(Percentage)
Dim con As New OleDb.OleDbConnection
con.ConnectionString = "PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source = G:/College Database.accdb"
con.Open()
sql = "SELECT GradeLetter FROM tblGrades WHERE
CourseId = '1' AND (GradeBoundaryLow <= " + Percentage + ")
AND (GradeBoundaryHigh >= " + Percentage + ")"
MsgBox(sql)
da = New OleDb.OleDbDataAdapter(sql, con)
da.Fill(ds2, "Grades")
con.Close()
End Sub
【问题讨论】:
-
代码比图片更容易处理和理解。
-
以文本表格的形式提供样本数据和所需的输出也很有帮助。您现在可以删除图像。这只是一种干扰。
-
如果 tblGrades 有学生成绩结果,为什么该表也会有成绩边界数据?再次提供样本原始数据和所需的输出。
-
在 Compile 选项卡的 Project Properties 中打开 Option Strict。修复这里指出的错误并编辑您问题中的代码。