mysql值变为0(零)

时间:2014-12-04 15:50:56

标签: mysql vb.net

任何帮助请为什么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`

1 个答案:

答案 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 ='" & - 这是一个完全冗余的字符串连接,而不是一个有经验的人会犯的错误,我真的不打算冒犯你或以任何方式粗鲁,只是提供关于如何前进并希望解决问题的明确建议。