Avatar billede starf Nybegynder
04. september 2003 - 14:26 Der er 12 kommentarer og
2 løsninger

Dato ned i Access Database?

Hey

har en access database der har en tabel med dato.. der er sat med access..

men hvordan får man en dato der ned fra et c# program? med et tryk på en knap..

har prøvet at bruge et dato felt, både med long og short dato.. men det virker ikke.. nogle der lige ved hvordan ?
Avatar billede medions Nybegynder
04. september 2003 - 14:51 #1
Er det ikke bare at Parse til en datoformat?
Fx.

Convert.ToDateTime(rs("felt"))

//>Rune
Avatar billede starf Nybegynder
04. september 2003 - 15:20 #2
måske har ikke prøvet.. men får fejl omkring rs..

rs does not exist?

der ud over hvordan får jeg den ind i databasen efter den er convertet???
Avatar billede Slettet bruger
04. september 2003 - 16:52 #3
Hvis du vil lave en Access database forbindelse gør du det nemmest med en OleDb forbindelse:

using System.Data.OleDb.

OleDbConnection conn = new new OleDbConnection();
OleDbCommand cmd = new OleDbCommand();

conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\database.mdb;User Id=admin";
conn.Open();

Så kan du smide din dato ind. Jeg lader som om der er en tabel med et datofelt:

cmd.CommandText = @"insert into tabel (datofelt) values (CDate(""" + System.DateTime.Now + @""")";
cmd.Connection = conn;
cmd.ExecuteNonQuery();
conn.Close();

Altid kalde close() efter din insert.

Det er CDate der fortæller Access at nu kommer en dato.
Avatar billede starf Nybegynder
04. september 2003 - 17:32 #4
//adder til menu databasen
            OleDbConnection myConn = new OleDbConnection( getDatabaseDNS());
            myConn.Open();
           
            string strLink = "<a href=\"" + sideload.Text +"?id="+ IdLink.Text +"\" target=\""+ TargetLink.Text +"\">"+ TekstLink.Text +"</a>";
            string strSQL="INSERT INTO menu(link,beskrivelse) VALUES('"+ strLink +"','"+ BeskrivelseLink.Text +"')";
            //til at tjekke sql strengen med
            MessageBox.Show(strSQL.ToString());
            OleDbCommand cmd;
            cmd=new OleDbCommand(strSQL,myConn);
            cmd.ExecuteNonQuery();       
            strSQL = "";
            cmd.CommandText = @"insert into menu(date) values (CDate(""" + System.DateTime.Now + @""")";
            cmd.Connection = myConn;
            cmd.ExecuteNonQuery();
            myConn.Close();   

når jeg trukker på knappen så stopper programmet og følgende linie bliver grøn
cmd.ExecuteNonQuery();
Avatar billede starf Nybegynder
04. september 2003 - 18:21 #5
//adder til menu databasen
            OleDbConnection myConn = new OleDbConnection( getDatabaseDNS());
            myConn.Open();
           
            string strLink = "<a href=\"" + sideload.Text +"?id="+ IdLink.Text +"\" target=\""+ TargetLink.Text +"\">"+ TekstLink.Text +"</a>";
            string strSQL="INSERT INTO menu(link,beskrivelse,date) VALUES('"+ strLink +"','"+ BeskrivelseLink.Text +"'CDate(" + System.DateTime.Now.ToString() +")'";

            //til at tjekke sql strengen med
            MessageBox.Show(strSQL.ToString());
            OleDbCommand cmd;
            cmd=new OleDbCommand(strSQL,myConn);
            cmd.ExecuteNonQuery();       
            strSQL = "";
           
            myConn.Close();   

giver samme resultat
Avatar billede Slettet bruger
05. september 2003 - 09:01 #6
Måske er din database DNS forkert? Stien til access databasen skal være den absolutte (c:\...) og der skal være skrive _OG_ execute rettigheder til fil og bibliotek.

Hvis access databasen ligger på en anden server en den som programmet kører på vil du få problemer. Microsoft har et hack til denne situation.

Din SQL skal bruge dobbeltplinger "
Avatar billede nielslbeck Nybegynder
05. september 2003 - 09:23 #7
starf>> I det sidste eksempel du kom med, mangler der et komma inden CDate(, desuden mangler der en ) men der er en ' for meget - så prøv med:

string strSQL = "INSERT INTO menu (link, beskrivelse, date) VALUES ('" +  strLink + "', '" + BeskrivelseLink.Text + "', CDate(" + System.DateTime.Now.ToString() + "))";

Hvis det ikke virker, må du gerne lige sende den fejlbesked med som du får...
Avatar billede starf Nybegynder
05. september 2003 - 12:04 #8
min database sti er ikke forkert. da mit output osv fra databasen virker..

nielsbeck har prøvet det du skrev men den der kommer en knap op om man vil breake eller continue og så bliver følgende linie grøn

cmd.ExecuteNonQuery();   

"An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll"
Avatar billede Slettet bruger
05. september 2003 - 12:07 #9
Der mangler plinger i SQL sætningen. Du skal bruge dobbeltplinger:

@"INSERT INTO menu (link, beskrivelse, date) VALUES (""" +  strLink + @""", """ + BeskrivelseLink.Text + @""", CDate(""" + System.DateTime.Now.ToString() + @"""))";
Avatar billede starf Nybegynder
05. september 2003 - 12:09 #10
nope så får jeg build errors......
ved de 3 """ ved (""" +  strLink
Avatar billede Slettet bruger
05. september 2003 - 12:12 #11
Huskede du @'erne?

@"INSERT INTO menu (link, beskrivelse, date) VALUES (""" +  strLink + @""", """ + BeskrivelseLink + @""", CDate(""" + System.DateTime.Now.ToString() + @"""))";

Kompilerer fint.
Avatar billede starf Nybegynder
05. september 2003 - 12:17 #12
ja ok min fejl.. glemte det første @  er lige vågnet :)

Hmmm samme fejl som før.. kan det være fordi den sender klok osv med? min outpox siger følgende bliver smidt i databasen..

Insert into menu (link, beskrivelse, date) VALUES ("<a href="indhold.asp?id=25" target="vælg target">test<"a>","system.windows.form.TekstBox,Tekst",CDate("05-09-2003 12:16:06"))
Avatar billede Slettet bruger
05. september 2003 - 12:22 #13
Nej, jeg tror at dine tekster indeholder for mange plinger. Du kan konvertere plingerne i teksten til enkeltplinger:

BeskrivelseLink.Text.Replace(@"""", "'");
Avatar billede starf Nybegynder
05. september 2003 - 12:32 #14
har prøvet at fjerne de andre så den kun sætter dato ind.. hjælper ikke
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