Это предварительное задание для класса, в котором я нахожусь. Предполагается, что он довольно прост и действует как разминка, но я не могу заставить его работать. В основном код вводит тестовую базу данных и выполняет расчет. В этом случае я пытаюсь найти самый высокий средний средний уровень в наборе игроков в бейсбол.Расчет SQL в VB.Net не работает
Таким образом, мой конечный результат должен быть именем игрока с самым высоким средним значением ватин или несколькими игроками, если они привязаны к самому высокому среднему значению.
Вот код:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim dt As DataTable = New DataTable()
Dim connStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Baseball.accdb"
Dim sqlStr As String = "SELECT * FROM Players"
Dim dataAdapter As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(sqlStr, connStr)
dataAdapter.Fill(dt)
dataAdapter.Dispose()
Dim average, pastAverage, highestAverage As Double
For i As Integer = 0 To dt.Rows.Count - 1
average = CDbl(dt.Rows(i)("hits/atBats"))
If average > pastAverage Then
highestAverage = average
End If
pastAverage = average
Next
For i As Integer = 0 To dt.Rows.Count - 1
If dt.Rows(i)("hits/atBats") = highestAverage Then
lstBoxHighest.Items.Add(dt.Rows(i)("name"))
End If
Next
End Sub
End Class
отладчик не будет идти мимо "средних = CDbl (dt.Rows (I) (" хиты/atBats "))" линии в первом цикле For Loop , Могу ли я делать такие вычисления в цикле? Я уверен, что заголовки столбцов (хитов и atBats правильны)
база данных выглядит в случае, если вам интересно:
name Team atBats hits Derek Jeter New York Yankees 511 158 Joe Mauer Minnesota Twins 545 174 etc...
Спасибо!
хитами это имя столбца, и atBats это имя столбца. Я пытаюсь найти средний уровень, разделив хиты atBats. Так что это должен быть расчет. Должен ли я попытаться создать новый столбец, написав имя SELECT, hits/atBats как средний показатель FROM Players? – user3029567
Я добавил, как выглядит база данных, чтобы вы могли видеть столбцы atBats и hits. – user3029567