任何帮助请为什么mysql值变为零它有类型double后它在mysql中的值为0,50它变为0.00
Sub absennaik()
Dim u As Double
Dim i As Integer = 0
For i = 0 To dgv.Rows.Count - 1
inputabsen = Val(dgv.Rows(i).Cells(4).Value)
If inputabsen <= absenbagus Then
u = 0
ElseIf inputabsen >= absenburuk Then
u = 1
Else
u = (inputabsen - absenburuk) / (absenburuk - absenbagus)
End If
Dim cmd = New Odbc.OdbcCommand("select * from fuzzy where fkode='" & i & "'", conn)
Dim rd = cmd.ExecuteReader
rd.Read()
If Not rd.HasRows Then
Dim sqltambah As String = "insert into fuzzy(fkode,faktifbaik) values " & "( '" & i & "','" & u & "')"
Dim cmd1 = New Odbc.OdbcCommand(sqltambah, conn)
cmd1.ExecuteNonQuery()
Else
Dim sqledit As String = "Update fuzzy set " & "faktifbaik ='" & u & "' where fkode = '" & i & "'"
Dim cmd1 = New Odbc.OdbcCommand(sqledit, conn)
cmd1.ExecuteNonQuery()
End If
NextEnd Sub`
答案 0 :(得分:0)
不,我不知道,这对于评论来说太大了,这就是我将其作为答案提交的原因,尽管其中一些可能实际上有所帮助。
您的问题很薄弱,没有足够的信息可以让任何人真正找到足够的信息来帮助您。它被设置为零因为inputabsen <= absenbagus
并导致变量变为0吗?
你至少要写一个实际问题并提供信息,数据库架构信息,跟踪,调试语句等任何实际上可以帮助没有水晶球的人回答它的事情。
有些问题,你正在使用MySQL和VB.NET,有没有任何理由说明你没有使用the MySQL .NET provider,这实际上是非常好的,专门设计用于密切了解MySQL,而不是通用的ODBC提供程序。
我知道你这里只处理整数,但参数而不是内联SQL非常重要 - 请搜索Google SQL Injection Attack
您是否通过附加调试器来查看代码,以确定它是应用程序逻辑而不是导致问题的数据库逻辑?
通过直接针对数据库运行生成的SQL来检查生成的SQL。
您要更新的列的数据类型是否为小数,精度是多少?
是文化问题(x.xx vs x,xx)?
我猜你的新编程,我试图提供有用的建议,以便你可以进一步帮助自己 - 我通过阅读你的源代码得出了这个结论,例如"Update fuzzy set " & "faktifbaik ='" &
- 这是一个完全冗余的字符串连接,而不是一个有经验的人会犯的错误,我真的不打算冒犯你或以任何方式粗鲁,只是提供关于如何前进并希望解决问题的明确建议。