插入数据库时发生内部异常错误VB.Net



我正在尝试将数据插入sql server数据库,我本周才开始使用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.

我没有"双重"类型的东西

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

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)

最新更新