Avatar billede bimmer123 Nybegynder
05. februar 2007 - 18:16 Der er 5 kommentarer og
1 løsning

Problemer med at indsætte data i MSSQL database

Hejsa,

Er netop begyndt på ASP.NET efter tidligere at have programmeret i ASP, og jeg har en hel del problemer med at indsætte data i min MS SQL 2005 database.

Jeg har en form hvor brugere kan oprette en profil...

Jeg bruger en SqlDataSource:
<asp:SqlDataSource ID="datNewUser" ConnectionString="<%$ onnectionStrings:mytrendConnectionString %>" InsertCommand="INSERT siteusers (Username, Password, Email, BirthDate, Zipcode, Gender, Mobil, Region) VALUES (@UserName, @Password, @Email, @BirthDate, @Zipcode, @Gender, @Mobil, @Region)" runat="server">
</asp:SqlDataSource>


Min submit button kalder så følgende i min Code-behind fil:

    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        datNewUser.InsertParameters.Add("UserName", xtUserName.Text);
        datNewUser.InsertParameters.Add("Password", txtPassword.Text);
        datNewUser.InsertParameters.Add("Email", txtEmail.Text);
        datNewUser.InsertParameters.Add("BirthDate", txtBirthday.Text);
        datNewUser.InsertParameters.Add("Zipcode", txtZipcode.Text);
        datNewUser.InsertParameters.Add("Gender", rdoGender1.Checked.ToString());
        datNewUser.InsertParameters.Add("Mobil", txtMobil.Text);
        datNewUser.InsertParameters.Add("Region", DropDownList1.SelectedValue);
        datNewUser.Insert();
    }

Jeg får så følgende fejl meddelelse:

Arithmetic overflow error converting expression to data type smalldatetime.
The statement has been terminated.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Arithmetic overflow error converting expression to data type smalldatetime.
The statement has been terminated.

Source Error:


Line 26:        datNewUser.InsertParameters.Add("Mobil", txtMobil.Text);
Line 27:        datNewUser.InsertParameters.Add("Region", DropDownList1.SelectedValue);
Line 28:        datNewUser.Insert();
Line 29:    }
Line 30: }

Source File: c:\Documents and Settings\Kasper Christensen\My Documents\Visual Studio 2005\WebSites\MyTrendAjax\NewUser.aspx.cs    Line: 28


Det eneste smalldatetime field i min database er BirthDate...
Avatar billede erikjacobsen Ekspert
05. februar 2007 - 18:24 #1
Hvad står der i txtBirthday.Text og hvad er datatypen for BirthDate ?
Avatar billede winners79 Nybegynder
05. februar 2007 - 18:26 #2
prøv at lav en "Convert.ToDateTime(txtBirthday.Text);" og se om den kan parses, hvis ikke må du jo hjælpe lidt til manuelt, kommer jo an på formatet i dit textfelt
Avatar billede bimmer123 Nybegynder
05. februar 2007 - 18:27 #3
datatypen er smalldatetime, og jeg har skrevet: 26-11-1985

Min SQL server ligger på en amerkikansk hostet server, og jo derfor også sat op på en box med amerikansk dato opsætning osv.
Men jeg har allerede indtastet dummy værdier i databasen igennem Visual Studio 2005 og der virker formatet 26-11-1985 helt fint...
Avatar billede dr_chaos Nybegynder
06. februar 2007 - 11:05 #4
prøv med :
datNewUser.InsertParameters.Add("BirthDate",TypeCode.DateTime, Convert.ToDateTime(txtBirthday.Text));
Avatar billede bimmer123 Nybegynder
17. maj 2007 - 19:57 #5
Lukker spørgsmålet - droppede projektet så fik aldrig bug for det alligevel, ellers tak for svarene :)
Avatar billede dr_chaos Nybegynder
17. maj 2007 - 20:07 #6
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester