Jag har laggt till några textboxar till min CreateUserWizard och försöker nu lägga till info från boxarna i en DB-tabell (aspnet_UserAddresses). Det konstiga är att det fungerar ungefär varannan gång. Testa att ange korrekt längd på parametrarna (samma längd som de har i databasen) : tackar så mycket...ExecuteNonQuery()
Meddeandet jag får när det inte fungerar är följande:
"String or binary data would be truncated.
The statement has been terminated."
Koden:
Dim UserNameTextBox As TextBox = CType(CreateUserWizardstep1.ContentTemplateContainer.FindControl("UserName"), TextBox)
Dim User As MembershipUser = Membership.GetUser(UserNameTextBox.Text)
Dim MyConnection As New SqlConnection(ConfigurationManager.ConnectionStrings("WebbhotellConnectionString").ConnectionString)
Dim InsertCommand As String = ("INSERT INTO aspnet_UserAddresses VALUES (@UserId, @Firstname, @Lastname, @Address, @Zip, @City, @State, @Phonenr)")
Dim MyCommand As SqlCommand = New SqlCommand(InsertCommand, MyConnection)
MyConnection.Open()
MyCommand.Parameters.Add("@UserId", SqlDbType.NVarChar).Value = User.UserName
MyCommand.Parameters.Add("@Firstname", SqlDbType.NVarChar).Value = txtFirstname.Text
MyCommand.Parameters.Add("@Lastname", SqlDbType.NVarChar).Value = txtLastname.Text
MyCommand.Parameters.Add("@Address", SqlDbType.NVarChar).Value = txtAddress.Text
MyCommand.Parameters.Add("@Zip", SqlDbType.NVarChar).Value = txtZip.Text
MyCommand.Parameters.Add("@City", SqlDbType.NVarChar).Value = txtCity.Text
MyCommand.Parameters.Add("@State", SqlDbType.NVarChar).Value = txtState.Text
MyCommand.Parameters.Add("@Phonenr", SqlDbType.NVarChar).Value = txtPhonenr.Text
MyCommand.ExecuteNonQuery()
MyConnection.Close()
JAg för fel på näst sista raden dvs MyCommand.ExecuteNonQuery()
Nån som kan hjälpa mig med det här?? Sv: ExecuteNonQuery()
<code>
MyCommand.Parameters.Add("@UserId", SqlDbType.NVarChar,50).Value = User.UserName
</code>
Genom att du gör det så skickas bara de 50 första tecknen över till databasen och då bör det inte smälla. Sedan bör du ju GUI-mässigt hantera detta så att inte användaren kan mata in längre namn än vad som tillåts i databasen.Sv:ExecuteNonQuery()
Felet var att jag begränsade namnet på städer till 10 bokstäver vilket blev knas varje gång jag försökte registrera en användare från t ex Katrineholm ;-)
Meningen var att postnr inte skulle vara mer en 10 tecken.
Tack ännu en gång. Du räddade min dag....