vb.net - 插入数据库时出现内部异常错误 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)
推荐阅读
- php - Google API PHP 客户端和 __Secure-XXX 会话名称
- c# - 在持续运行基于 Timer 的事件编程时,事件发生了超出预期的跳跃。为什么会这样?
- java - Webdriver:通过占位符文本定位输入框,然后通过 sendkey("test text") 将文本定位到输入框
- jquery - 如何显示数据以从 ajax 发布响应中选择选项以在 laravel 中查看
- amazon-web-services - 是否可以在 'waf-regional' web-acls 上添加标签?
- nlp - HuggingFace 变形金刚:BertTokenizer 改变字符
- php - Mailchimp - 如何在活动中设置日期区域设置?
- yakuake - Yakuake - 从 Shift+Tab 重新映射拆分导航
- javascript - 使用 Socket.io 的通知 - 如何发送给特定的用户/收件人?
- javascript - 我可以使用角色和/或使用木偶吗?