0

誰かが私の問題に光を当てることができますか? 私はこのフォームコードを持っており、テキストボックスのテキストを取得してデータベースに入れることになっています。ただし、エラーが発生します。SqlException was unhandled by user code: String or binary data would be truncated. The statement has been terminated.

コードは次のとおりです。

Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration

Partial Class Usuarios
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

    Protected Sub BotonA_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim iDUsuario As String = RFC.ToString
        Dim nomUsuario As String = Name.ToString
        Dim apellidoP As String = ApellidoPaterno.ToString
        Dim apellidoM As String = ApellidoMaterno.ToString
        Dim passUsuario As String = contrasena.ToString
        Dim nombre As String = seudonimo.ToString
        Dim iDtipo As Integer = "1"

        Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("dbconnection").ConnectionString)
        con.Open()
        Dim cmd As New SqlCommand("INSERT INTO usuarios (iDUsuario, nomUsuario, apellidoP, apellidoM, passUsuario, nombre, idTipo) VALUES (@iDUsuario, @nomUsuario, @apellidoP, @apellidoM, @passUsuario, @nombre, @iDtipo)", con)
        cmd.Parameters.AddWithValue("@iDUsuario", iDUsuario)
        cmd.Parameters.AddWithValue("@nomUsuario", nomUsuario)
        cmd.Parameters.AddWithValue("@apellidoP", apellidoP)
        cmd.Parameters.AddWithValue("@apellidoM", apellidoM)
        cmd.Parameters.AddWithValue("@passUsuario", passUsuario)
        cmd.Parameters.AddWithValue("@nombre", nombre)
        cmd.Parameters.AddWithValue("@iDtipo", iDtipo)
        cmd.ExecuteNonQuery()
    End Sub

End Class

私は私のような多くの質問や問題を読みましたが、これをどのように解決するかについての手がかりはありません.

4

3 に答える 3

1

これは、入力が SQL で宣言された列の長さよりも大きいことを意味します。VARCHAR (または任意の CHAR タイプ フィールド) の長さを調整して、可能な最大入力長に対応します。

于 2013-05-29T17:41:05.677 に答える
0
Dim nomUsuario As String = Name.ToString

あなたの名前は文字列ではありませんか?

Dim iDtipo As Integer = "1"

そのはずDim iDtipo As Integer = 1

「iDtipo」フィールドが VARCHAR の場合

cmd.Parameters.AddWithValue("@iDtipo", iDtipo.ToString)

数値の場合

cmd.Parameters.AddWithValue("@iDtipo", iDtipo)
于 2013-05-29T23:31:50.903 に答える
0

私はそれを作りました:これは間違っていたものです:

それ以外の:

    Dim iDUsuario As String = RFC.ToString
    Dim nomUsuario As String = Name.ToString
    Dim apellidoP As String = ApellidoPaterno.ToString
    Dim apellidoM As String = ApellidoMaterno.ToString
    Dim passUsuario As String = contrasena.ToString
    Dim nombre As String = seudonimo.ToString
    Dim iDtipo As Integer = "1"

それは:

    Dim iDUsuario As String = RFC.Text
    Dim nomUsuario As String = Name.Text
    Dim apellidoP As String = ApellidoPaterno.Text
    Dim apellidoM As String = ApellidoMaterno.Text
    Dim passUsuario As String = contrasena.Text
    Dim nombre As String = seudonimo.Text
    Dim iDtipo As Integer = 1

文字列変数がテキストボックスの文字列値を格納することをコンパイラに伝えたくないので、ばかげています XD

于 2013-05-30T16:36:03.830 に答える