VB.net / SQL 可以存储数字、逗号、小数(2位)和vbcrlf的数据类型?
Posted
技术标签:
【中文标题】VB.net / SQL 可以存储数字、逗号、小数(2位)和vbcrlf的数据类型?【英文标题】:VB.net / SQL Datatype that can store numbers, comma, decimal(2places) and vbcrlf? 【发布时间】:2015-01-16 06:00:33 【问题描述】:我总是得到一个“字符串或二进制数据将被截断”,我已经在谷歌上搜索了答案,但我找不到与我的文本框相同的值。
在我的程序中,我有一个文本框(multiLine),其值为 number、comma、decimal(2places) 和 vbCrlf,如下所示。
1,234,567.89
9,876,543.21
上图是我的文本框具有的值的示例。 (注意:请注意上面的数字有 2 个逗号,因为它是百万),我不知道它背后的原因是什么,但如果它只有 1 个逗号,我的代码就像
123,456.78
987,654.32
我已将我的 vb.net 数据类型设置为字符串、十进制、双精度和对象,但我仍然遇到相同的错误。关于我的 SQL 数据类型,我已经将它设置为 varchar、nvarchar、char 但仍然得到相同的错误。这是我的代码:
*This is my CLASS code title SQLControl
Public Sub AddToJournalEntry(DrCrAmount As Object)
Try
Dim strInsert As String = "INSERT INTO JournalEntry (DrCrAmount) " & _
"VALUES (" & _
"'" & DrCrAmount & "') "
SQLCon.Open()
SQLCmd = New SqlCommand(strInsert, SQLCon)
SQLCmd.ExecuteNonQuery()
SQLCon.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
*This my code in my frmMain
Dim sql As New SQLControl
Private Sub btnGenerate_Click(sender As System.Object, e As System.EventArgs) Handles btnGenerate.Click
Dim format1 As String = "0,-10 1,12"
Dim Line1Amount, Line2Amount As String
If lbl1.Text = "Dr" Then
Line1Amount = String.Format(format1, txtAmount1.Text, vbNullString)
Line1Amount = Line1Amount.TrimEnd(" ", vbNullString)
ElseIf lbl1.Text = "Cr" Then
Line1Amount = String.Format(format1, vbNullString, txtAmount1.Text)
Line1Amount = Line1Amount.TrimEnd(" ", vbNullString)
Else
Line1Amount = String.Format(format1, vbNullString, vbNullString)
Line1Amount = Line1Amount.TrimEnd(" ", vbNullString)
lbl1.Text = vbNullString
End If
If lbl2.Text = "Dr" Then
Line2Amount = String.Format(format1, txtAmount2.Text, vbNullString)
Line2Amount = Line2Amount.TrimEnd(" ", vbNullString)
ElseIf lbl2.Text = "Cr" Then
Line2Amount = String.Format(format1, vbNullString, txtAmount2.Text)
Line2Amount = Line2Amount.TrimEnd(" ", vbNullString)
Else
Line2Amount = String.Format(format1, vbNullString, vbNullString)
Line2Amount = Line2Amount.TrimEnd(" ", vbNullString)
lbl2.Text = vbNullString
End If
Dim myString2 As String = Line1Amount & vbCrLf & Line2Amount
****This code is to delete unnecessary spaces and new lines
myString2 = myString2.TrimEnd(" ", vbNullString, Convert.ToChar(Keys.Return), Convert.ToChar(Keys.LineFeed))
txtDrCrAmount.Text = myString2
End Sub
Private Sub btnRecord_Save_Click(sender As System.Object, e As System.EventArgs) Handles btnRecord_Save.Click
sql.AddToJournalEntry(txtDrCrAmount.Text)
End Sub
注意:我的代码已经过编辑,为了您的方便,我已经删除了不必要的代码。
谢谢 =) 顺便说一句,我是一个新手程序员。
【问题讨论】:
创建数据类型为varchar的数据库表应该没有问题。 嗨,Akhil 先生,是的,它正在工作,但问题出在上面提到的 2 逗号上。它在 1 comma.tnx 中工作正常 但同样适用于我,两个甚至三个逗号和小数点。请检查错误发生的确切位置。 您能否指定发生“stirng or binary data will be truncated”错误的值。以及sql中数据字段的长度。 感谢 akhil,我如何将您的评论标记为已回答? =) 我明白了,我的程序运行良好。 【参考方案1】:每当你看到消息时......
string or binary data would be truncated
自己想想……这个字段不够大,无法容纳我的数据。
检查 yourtable 的表结构。我想您会发现字段的长度不足以容纳您尝试插入的数据。例如,如果 journalentry 字段是 varchar(50) 字段,并且您尝试在其中输入 51 个字符,则会收到此错误。
【讨论】:
谢谢,我忘了检查与其他表格相关/链接的其他表格。存在长度问题,现在已解决。非常感谢以上是关于VB.net / SQL 可以存储数字、逗号、小数(2位)和vbcrlf的数据类型?的主要内容,如果未能解决你的问题,请参考以下文章