插入数据库时​​出现内部异常错误VB.Net

时间:2020-11-04 22:20:44

标签: vb.net

我正试图将数据插入sql服务器数据库中,我本周才开始使用VB,所以我对此很陌生。

这是我的表定义:

[betfair_place_bsp](
    [bf_runner_id] [int] NOT NULL,
    [bf_event_id] [varchar](12) NOT NULL,
    [name] [varchar](255) NOT NULL,
    [win] [int] NOT NULL,
    [bsp_place] [decimal](6, 2) NOT NULL,
    [ppwap] [decimal](6, 2) NOT NULL,
    [early_traded] [numeric](18, 0) NOT NULL,
    [pre_traded] [numeric](18, 0) NOT NULL,
    [meeting_date] [date] NOT NULL,
    [scheduled_time] [datetime] NOT NULL,
    [country] [varchar](50) NOT NULL]

我正在读取数据,然后按列将其拆分

line = reader.ReadLine
Dim colsArray() As String = Split(line, ",")

我更改了某些列的格式

Dim meetingDate As String = Split(colsArray(3), " ")(0)
Dim scheduledTime As String = colsArray(3) + ":00"

Dim winLose As Integer = colsArray(6)
Dim backPrice As Decimal = Math.Round(Convert.ToDecimal(colsArray(7)), 2)
Dim weightedPrice As Decimal = Math.Round(Convert.ToDecimal(colsArray(8)), 2)
Dim earlyTraded As Decimal = Math.Round(Convert.ToDecimal(colsArray(14)), 0)
Dim preTraded As Decimal = Math.Round(Convert.ToDecimal(colsArray(15)), 0)

然后创建插入字符串

cmd.CommandText = "insert into betfair_place_bsp values(" + colsArray(4) + "," + "1." + colsArray(0) + ",'" + colsArray(5) + "'," + winLose  _
                    + ",'" + backPrice + "'," + weightedPrice + "," + earlyTraded + "," + preTraded + "," + meetingDate + ",'" + scheduledTime + "' + 'UK')"

当我尝试调整上面的行时,出现以下错误:

System.InvalidCastException: 'Conversion from string "insert into betfair_place_bsp va" to type 'Double' is not valid.'
FormatException: Input string was not in a correct format.

我没有'Double'类型的任何东西

1 个答案:

答案 0 :(得分:0)

根据上述建议,我使用了参数,而不是连接字符串。

Dim newDataInsert As New betfair_data() With {.bf_event_id = "1." & colsArray(0), .bf_runner_id = colsArray(4), .name = colsArray(5), .bsp_place = colsArray(7),
                    .ppwap = colsArray(8), .early_traded = colsArray(14), .pre_traded = colsArray(15), .meeting_date = meetingDate, .scheduled_time = scheduledTime, .country = "UK", .win = colsArray(6)
                    }

                db.InsertRow(newDataInsert)
相关问题