字符串或二进制数据将被截断.该语句已终止

Mik*_*Jhy 3 sql vb.net

添加新数据时总是出错.错误说

字符串或二进制数据将被截断.该语句已终止

因为我回顾了我的后端或代码.看起来TWO LABEL DATA在一列中添加一个冲突是因为我想加入(年) - (StudentNumber)

这是我的INSERT INTO语句的代码

  INSERT INTO
     [Student_Information] (StudentID, LastName, FirstName, MiddleName, Gender, 
                            ContactNumber, Citizenship, Religion, Birthday, Address) 
  VALUES 
     ( '" & lbl_cyear.Text - studid.Text & "','" + txt_lname.Text + "', '" + txt_fname.Text + "', '" + txt_mname.Text + "', '" + DDGender.Text + "', '" & txt_cnumber.Text & "', '" & txt_citizenship.Text & "' , '" + txt_religion.Text + "' , '" & txt_bday.Text & "', '" & txt_address.Text & "' )"
Run Code Online (Sandbox Code Playgroud)

这是我如何生成年份和学生编号的代码

Sub SNYear()
    Dim test As Date

    test = Convert.ToDateTime(Today)
    lbl_cyear.Text = test.Year
End Sub
Sub SNGenerate()
    'displaying Studentid
    Dim SN As Integer ' Student Number
    Dim SID As String 'Student ID Num as String

    Dim rdr As SqlDataReader

    cmd1.Connection = cn
    cmd1.Connection.Open()
    cmd1.CommandText = "Select Max (StudentID) as expr1 from [Student_Information]"
    rdr = cmd1.ExecuteReader

    If rdr.HasRows = True Then
        rdr.Read()
    End If

    If rdr.Item(0).ToString = Nothing Then
        SN = rdr.Item(0) + 1
        SID = Format(SN, "0000")
    ElseIf rdr.Item(0).ToString = 0 Then
        SN = rdr.Item(0) + 1
        SID = Format(SN, "0000")

    Else
        SN = rdr.Item(0) + 1
        SID = Format(SN, "0000")
    End If


    studid.Text = SID

    cmd1.Connection.Close()

End Sub
Run Code Online (Sandbox Code Playgroud)

有人可以帮我代码吗?如何将2个数据连接到不同的标签文本中并将其保存到表格中的一列中.

And*_*lad 8

哇!永远不要写那样的SQL查询.它受到危险的SQL注入,并且像这样的代码实际上被用作SQL注入讲座中的最坏情况!

话虽这么说,错误消息字符串或二进制数据将被截断.该语句已终止.实际上说明了什么是错的.您正在尝试将过多数据插入到具有特定维度的字段中.

您正尝试在StudentID字段中插入以下表达式:

lbl_cyear.Text - studid.Text
Run Code Online (Sandbox Code Playgroud)

我甚至不确定你想做什么.由于默认情况下松散地键入Visual Basic,它可能会处理lbl_cyear.Text数字并尝试从中减去studid.Text (作为数字).你可能意味着这样的事情:

lbl_cyear.Text & "-" & studid.Text
Run Code Online (Sandbox Code Playgroud)

您似乎正在尝试将该StudentID列用于两种不同类型的信息.不要那样做.确定学生ID的一种格式并为其标注列.

这是家庭作业吗?