VB.net / SQL 可以存储数字,逗号,小数(2位)和vbcrlf的数据类型?
VB.net / SQL Datatype that can store numbers, comma, decimal(2places) and vbcrlf?
我总是得到 "String or binary data would be truncated" 我已经搜索 google 寻找答案,但我找不到与我的文本框相同的值。
在我的程序中,我有一个文本框(多行),其值为数字、逗号、小数(2 位)和 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
注意:我的代码已经过编辑,为了您的方便,我已经删除了不必要的代码。
谢谢=) 顺便说一句,我是一名新手程序员。
每当您看到消息时......
string or binary data would be truncated
想想你自己...字段不够大,无法容纳我的数据。
检查您table的table结构。我认为您会发现字段的长度不足以容纳您要插入的数据。例如,如果 journalentry 字段是一个 varchar(50) 字段,而您尝试将 51 个字符放入其中,则会出现此错误。
我总是得到 "String or binary data would be truncated" 我已经搜索 google 寻找答案,但我找不到与我的文本框相同的值。
在我的程序中,我有一个文本框(多行),其值为数字、逗号、小数(2 位)和 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
注意:我的代码已经过编辑,为了您的方便,我已经删除了不必要的代码。
谢谢=) 顺便说一句,我是一名新手程序员。
每当您看到消息时......
string or binary data would be truncated
想想你自己...字段不够大,无法容纳我的数据。
检查您table的table结构。我认为您会发现字段的长度不足以容纳您要插入的数据。例如,如果 journalentry 字段是一个 varchar(50) 字段,而您尝试将 51 个字符放入其中,则会出现此错误。