|
各位老师,请教一个问题:
我现在正在编辑一个程序,一切都进展挺顺利,但忽然遇见一个问题,发现我向access数据库中某个字段录入数字数据,该字段如果是短文本类型的话,能成功录入。但后续如果通过SQL计算该字段的平均值,系统却一直报错。貌似短文本类型的数据不支持计算平均值。
但如果我把类型改为数字类型,平均值可以计算了,但又变成无法录入。
头疼,百度了半天都不得其所以然,恳请老师指教,看是否我的SQL语句有问题。
WindowsApp1.zip
(405.51 KB, 下载次数: 1)
感激不尽~~
例如的SQL:
Dim constring As String = "provider=microsoft.ace.oledb.12.0;data source =C:\Users\Ar\Desktop\Project.accdb"
Dim conn As New OleDb.OleDbConnection(constring)
conn.Open()
TextBox8.Text = 10/ 50 * 100 & "%"
Dim C2 As New OleDb.OleDbCommand("update [" & ComboBox1.Text & "] set PI通过率='" & TextBox8.Text & "' where 姓名='" & TextBox5.Text & "'", conn) -----》就是这,如果设置PI通过率为数字类型,执行时就会报错了。改成文本类型就OK
C2.ExecuteNonQuery()
MsgBox("已更新成功")
conn.Close()
计算平均值的代码:
Dim constring As String = "provider=microsoft.ace.oledb.12.0;data source =C:\Users\Ar\Desktop\Project.accdb"
Dim conn As New OleDb.OleDbConnection(constring)
Dim C1 As New OleDb.OleDbCommand("select avg(PI通过率) from 项目二", conn)
conn.Open()
TextBox9.Text = Math.Round(C1.ExecuteScalar, 2) * 100 & "%"
Dim c2 As New OleDb.OleDbCommand("select 姓名 from 信息表 where 工号 = " & TextBox10.Text, conn)
TextBox11.Text = c2.ExecuteScalar
c2.Dispose()
C1.Dispose()
conn.Close()
|
|