Avatar billede jens_houmann Nybegynder
15. august 2006 - 17:53 Der er 3 kommentarer

Datoformater - dansk / amerikansk

Er ved at lave et ASP.NET program i C# med en MS SQL Server DB.
I tabellen PizzaOrdreTabel er defineret et felt: OrdreDato af typen datetime.

Herunder er koden til at oprette en post i PizzaOrdreTabellen.
Det underlige er at linie 2 giver en dato i formatet: dd-mm-aaaa tt:mm:ss (bindestreger i datoen) hvilket SQL Server ikke

accepterer.
Det giver følgende fejl:

System.Data.SqlClient.SqlException: The conversion of a char data type to a datetime data type resulted in an out-of-range

datetime value. The statement has been terminated. at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at

ASP.OpretOrdre_aspx.RegistrerOrdre()

Når jeg bruger linie 12 (som nu er kommenteret ud) med / kører alt fint.

Altså: databasen forventer amerikansk datoformat, mens systemet, naturligt nok, leverer en dansk formatteret dato.
Er der en parameter jeg kan indsætte så jeg får rigtigt datoformat begge steder??

Jeg vil nødigt til hard-codemæssigt at fjerne bindestregerne og anvende Convert.ToDateTime.


--------------------------------------------------------------------------------------------------------------


1    int intAntal = Convert.ToInt16(tbAntal.Text);
2    DateTime dtDato = Convert.ToDateTime(DateTime.Now);
3       
4    string strConnection = "user id=jh;password=*******;Initial Catalog=Pizza;data source=(local)";
5      SqlConnection objConnection = new SqlConnection(strConnection);
6       
7       
8    strSQL = "INSERT into PizzaOrdreTabel values (" + drpData1.SelectedIndex + ",";
9    strSQL += drpData2.SelectedIndex + "," + intAntal + ",'" + dtDato + "',";
10    strSQL += "1" + ",'" + dtDato + "')";
11       
12    //strSQL = "INSERT into PizzaOrdreTabel values(2,3,4,'2006/08/15',0,'2005/08/16')";
13   
14    try
15          {
16          objConnection.Open();
17            lblBesked1.Text="Forbindelse til DB er etableret";
18          SqlCommand myCommand = new SqlCommand(strSQL, objConnection);
19        myCommand.ExecuteNonQuery();
20                  }
21    catch (Exception e)
22          {
23            lblBesked3.Text="Etablering af forbindelse fejlet!";
24          lblBesked4.Text=e.ToString();
24          }

----------------------------------------------------------------------------------------------------------------
Avatar billede arne_v Ekspert
15. august 2006 - 18:30 #1
nielle har givet et udmaerket svar i .NET kategorien
Avatar billede ldanielsen Nybegynder
17. august 2006 - 11:28 #2
Prøv med

strSQL += drpData2.SelectedIndex + "," + intAntal + ", CONVERT(datetime, '" + dtDato + "', 105),";
10    strSQL += "1" + ",'" + dtDato + "')";
Avatar billede ldanielsen Nybegynder
17. august 2006 - 11:29 #3
Sorry:

8    strSQL = "INSERT into PizzaOrdreTabel values (" + drpData1.SelectedIndex + ", ";
9    strSQL += drpData2.SelectedIndex + ", " + intAntal + ", CONVERT(datetime, '" + dtDato + "', 105), ";
10    strSQL += "1" + ", CONVERT(datetime, '" + dtDato + "', 105)";
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
Computerworld tilbyder specialiserede kurser i database-management

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