webForumDet fria alternativet

Problem med att spara i databas.

.NET

1 svar · 413 visningar · startad av ConnyFox

Medlem sedan aug. 20011 087 inlägg
Frågan#1

Är nybörjare på .net så ser ni något konstigt så säg till.

Hursomhelst så får jag en massa olika problem när jag görsöker lägga till data i en databas med följande kod jag tror något utav fälten newsletter, gender eller birthdate strular, lägga till dom vanliga textfälten fungerar nämligen.

får fel på raden comm.ExecuteNonQuery()

<%@ Page Language="VB" MasterPageFile="~/community.master" AutoEventWireup="false" CodeFile="register_account.aspx.vb" Inherits="register_account" Culture="auto" UICulture="auto" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
        <asp:Label ID="dbErrorMessage" runat="server" Text=""></asp:Label>
       Användarnamn:
        <asp:TextBox ID="username" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator id="usernameReq" runat="server" ControlToValidate="username" ErrorMessage="<br />Du måste fylla i Användarnamn!" Display="Dynamic" /><br />
        Lösenord:
        <asp:TextBox ID="password1" runat="server" TextMode="Password"></asp:TextBox>
        <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ControlToValidate="password1" ErrorMessage="<br />Du måste fylla i Lösenord" Display="Dynamic" />
        <br />
        <ajaxToolkit:PasswordStrength ID="PS" runat="server"    TargetControlID="password1"
    DisplayPosition="RightSide"    StrengthIndicatorType="Text"    PreferredPasswordLength="6"    PrefixText="Lösenord styrka:"
    MinimumNumericCharacters="2"    MinimumSymbolCharacters="0"    RequiresUpperAndLowerCaseCharacters="true"    HelpStatusLabelID="password1_HelpLabel"    TextStrengthDescriptions="Väldigt svag;Svag;Normal;Stark;Väldigt Stark"    CalculationWeightings="50;15;15;20" />
        Upprepa Lösenord:
        <asp:TextBox ID="password2" runat="server" TextMode="Password"></asp:TextBox>
        <asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="Du måste fylla i samma lösenord i båda rutorna!" ControlToCompare="password2" ControlToValidate="password1"></asp:CompareValidator>
        <br />
        <asp:Label ID="password1_HelpLabel" runat="server" /><br />
        <br />
        Förnamn:
        <asp:TextBox ID="name" runat="server"></asp:TextBox><br />
        Efternamn:
        <asp:TextBox ID="lastname" runat="server"></asp:TextBox><br />
        Epost:
        <asp:TextBox ID="email" runat="server"></asp:TextBox><br />
        Kön:
 <asp:radiobuttonlist id="gender" runat="server">
        <asp:listitem value="0" Text="man" />
        <asp:listitem value="1" Text="kvinna" />
      </asp:radiobuttonlist>

        Födelsedatum:        
        <asp:TextBox ID="birthdate" runat="server"></asp:TextBox>
        <asp:Image ID="calendarimage1" ImageUrl="~/img/Calendar_scheduleHS.png" runat="server" />
        <br />
        
         <ajaxToolkit:ToolkitScriptManager runat="Server" EnableScriptGlobalization="true" EnableScriptLocalization="true" ID="ScriptManager1" />
    <ajaxToolkit:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="birthdate" PopupButtonID="calendarimage1" />
        <br />
        <asp:CheckBox ID="newsletter" Text="Nyhetsbrev" runat="server" Checked="true"/><br />
        <asp:CheckBox ID="useragreement" Text="anvandaravtal" runat="server" /><br />
        <br />
        <asp:button ID="submit1" runat="server" CausesValidation="true" text="Skicka" />
</asp:Content>

.vb

Imports System.Data.SqlClient
Imports System.Configuration

Partial Class register_account
    Inherits System.Web.UI.Page

    Protected Sub submit1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles submit1.Click
        If Page.IsValid Then
            ' Define data objects
            Dim conn As SqlConnection
            Dim comm As SqlCommand
            ' Read the connection string from Web.config
            Dim connectionString As String = ConfigurationManager.ConnectionStrings("community").ConnectionString
            ' Initialize connection
            conn = New SqlConnection(connectionString)
            ' Create command
            comm = New SqlCommand("InsertUserAccount", conn)
            comm.CommandType = System.Data.CommandType.StoredProcedure
            ' Add command parameters

            comm.Parameters.Add("@username", System.Data.SqlDbType.NVarChar, 50)
            comm.Parameters("@username").Value = username.Text
            comm.Parameters.Add("@password", System.Data.SqlDbType.NVarChar, 50)
            comm.Parameters("@password").Value = password1.Text

            comm.Parameters.Add("@name", System.Data.SqlDbType.NVarChar, 50)
            comm.Parameters("@name").Value = name.Text
            comm.Parameters.Add("@lastname", System.Data.SqlDbType.NVarChar, 50)
            comm.Parameters("@lastname").Value = lastname.Text
            comm.Parameters.Add("@email", System.Data.SqlDbType.NVarChar, 50)
            comm.Parameters("@email").Value = email.Text
            comm.Parameters.Add("@gender", System.Data.SqlDbType.Int)
            comm.Parameters("@gender").Value = gender
            comm.Parameters.Add("@birthdate", System.Data.SqlDbType.DateTime)
            comm.Parameters("@birthdate").Value = birthdate
            comm.Parameters.Add("@newsletter", System.Data.SqlDbType.Int)
            comm.Parameters("@newsletter").Value = newsletter

            'Try
            ' Open the connection
            conn.Open()
            ' Execute the command
            comm.ExecuteNonQuery()
            ' Reload page if the query executed successfully
            Response.Redirect("register_account.aspx")
            'Catch
            ' Display error message
            dbErrorMessage.Text = "Error submitting the help desk request! Please Try again later, and/or change the entered data!"
            'Finally
            ' Close the connection
            conn.Close()
            'End Try
        End If
    End Sub
End Class

Som sagt det går att lägga till endast textfälten men inte dom tre som nämns ovanför. kanske är något som måste converteras?

Medlem sedan aug. 20011 087 inlägg
#2

Lyckades testa mig fram till vad felet berodde på själv, var typfel på en av dom tre som jag trodde.

264 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)