2013-05-29 2 views
0

Quelqu'un peut-il éclairer mon problème? J'ai ce code de formulaire et qui est censé prendre le texte de la zone de texte et le mettre dans la base de données. Je suis, cependant, obtenir une erreur, SqlException was unhandled by user code: String or binary data would be truncated. The statement has been terminated.données de la zone de texte à la base de données, erreur

Voici le code:

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 

J'ai lu beaucoup de questions et des problèmes comme la mienne, mais je n'ai pas la moindre idée comment je pourrais résoudre ce problème.

Répondre

1

Cela signifie que votre entrée est supérieure à la longueur déclarée de la colonne dans SQL. Ajustez le VARCHAR (ou tout autre champ de type CHAR dont vous disposez) pour adapter votre longueur d'entrée maximale possible.

+0

Je l'ai fait mais dans la page aspx, mais je pense que vous suggérez que je le fais dans le fichier .vb aussi ??? comme: Dim iDUsuario As String = RFC.ToString (0,50) – DarkVader

+0

Partout où ce sont des références, vous pouvez limiter la longueur ... Vous pouvez également augmenter la longueur permise à la base de données. – Haney

0
Dim nomUsuario As String = Name.ToString 

Êtes-vous sûr que votre Nom liez pas?

Dim iDtipo As Integer = "1" 

Il devrait être Dim iDtipo As Integer = 1

Si votre champ "iDtipo" est VARCHAR

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

Si numérique

cmd.Parameters.AddWithValue("@iDtipo", iDtipo) 
+0

Je ne comprends pas, la commande .ToString ne dit-elle pas que le nom est une chaîne? – DarkVader

+0

Non, .ToString signifie convertir une valeur en chaîne var .. tout problème avec ma réponse? – matzone

+0

Oh je vois, désolé, je suis un débutant complet en visuel ...: P – DarkVader

0

Je l'ai fait: voilà ce qui était faux:

au lieu de:

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" 

Il est:

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 

Parce que je wans't dire au compilateur que les variables de chaîne mémorise les valeurs de chaînes des zones de texte, idiot de moi XD

+0

mieux nommé votre contrôle avec initial comme txtName pour la zone de texte .. cboName pour combobox etc ... – matzone

Questions connexes