Avatar billede sonurpals Nybegynder
29. december 2005 - 12:39 Der er 9 kommentarer og
1 løsning

C# Web service til MySQL using connctor Net

Jeg prøver lige igen med det spørgsmål...

så er jeg igen med problem med c# og MySQL... Det handler om Web service som skal hente data til en MySQL db og tilføj data.
Hent virker fint men add virker ikke men det kommer heller ingen fejl. Brugernavn er root, pw = null, db = mydatabase, table = userinfo..

//code
[WebMethod]
        public string GetCustomers(int id)
        {
            MySqlConnection con = new MySqlConnection("Database=mydatabase;"+
                "Data Source=localhost;User Id=root;Password=''");
            con.Open();
            MySqlCommand sel = new MySqlCommand("SELECT * FROM userinfo "+
                "WHERE 1 AND `id` = "+id, con);
            MySqlDataReader dReader = sel.ExecuteReader();
            CustomerInfo cust;         
            string strOutput = "";
            while (dReader.Read())
            {
            for (int i = 0; i < dReader.FieldCount; i++)
            {
                strOutput += dReader.GetName(i) + ": " + dReader.GetValue(i).ToString() + "<br>";
            }
        }
        dReader.Close();
        con.Close();
        return strOutput;
        }

        [WebMethod]
        public void AddCustomer(int id, string userName)
        {
            MySqlConnection con = new MySqlConnection("Database=mydatabase;"+
                "Data Source=localhost;User Id=root;Password=''");
            con.Open();
            MySqlCommand insert = new MySqlCommand("INSERT INTO `userinfo`"+
                "(`id`, `userName`) VALUES ('" + id + "', '" + userName + "')");
            con.Close();
        } 

som sagt så virker GetCustomers methoden fint men AddCustomer kan jeg ikke få til at tilføj data.
Er det noget som jeg mangler til MySqlCommand (execute eller noget lignende)..

på forhånd tak for eventuelt svar
Avatar billede dr_chaos Nybegynder
29. december 2005 - 12:45 #1
prøv at tilføje

insert.ExecuteNonQuery();
Avatar billede dr_chaos Nybegynder
29. december 2005 - 12:56 #2
så du får

[WebMethod]
        public void AddCustomer(int id, string userName)
        {
            MySqlConnection con = new MySqlConnection("Database=mydatabase;"+
                "Data Source=localhost;User Id=root;Password=''");
            con.Open();
            MySqlCommand insert = new MySqlCommand("INSERT INTO `userinfo`"+
                "(`id`, `userName`) VALUES ('" + id + "', '" + userName + "')");
            insert.ExecuteNonQuery();
            con.Close();
        }
Avatar billede sonurpals Nybegynder
29. december 2005 - 15:23 #3
Det giver mig en fejl.. page cannot be displayed... og det bliver heller ikke noget tilføjet til databasen :-(
Avatar billede dr_chaos Nybegynder
29. december 2005 - 16:09 #4
prøv lige med
[WebMethod]
        public string AddCustomer(int id, string userName)
        {
            MySqlConnection con = new MySqlConnection("Database=mydatabase;"+
                "Data Source=localhost;User Id=root;Password=''");
            con.Open();
            MySqlCommand insert = new MySqlCommand("INSERT INTO `userinfo`"+
                "(`id`, `userName`) VALUES ('" + id + "', '" + userName + "')");
            insert.ExecuteNonQuery();
            con.Close();
return "test";
        }
Avatar billede dr_chaos Nybegynder
29. december 2005 - 16:11 #5
prøv lige med du havde glemt at tilføje con efter insert into commandoen

[WebMethod]
        public void AddCustomer(int id, string userName)
        {
            MySqlConnection con = new MySqlConnection("Database=mydatabase;"+
                "Data Source=localhost;User Id=root;Password=''");
            con.Open();
            MySqlCommand insert = new MySqlCommand("INSERT INTO `userinfo`"+
                "(`id`, `userName`) VALUES ('" + id + "', '" + userName + "')",con);
            insert.ExecuteNonQuery();
            con.Close();
        }
Avatar billede sonurpals Nybegynder
29. december 2005 - 18:03 #6
Det var lige hvad manlede... tusind tak skal du have..
så har vi et svar og du får dine points dr. chaos
Avatar billede dr_chaos Nybegynder
29. december 2005 - 18:05 #7
svar :)
Avatar billede ldanielsen Nybegynder
31. december 2005 - 12:48 #8
- og så var det jo faktisk i den forkerte kategori ...
Avatar billede arne_v Ekspert
31. december 2005 - 12:57 #9
at man skal kalde ExecuteNonQuery og at Command skal have en Connection er
vel "on topic" i C# kategorien

(strenget logisk burde det være i .NET kategorien fordi problem stillingen
er præcis den samme i alle .NET sprog, men vi besvarer altså også
ANSI SQL spørgsmål i MSSQL kategorien selvom de strengt logisk
burde stilles i Database Generelt - hvis spørger viste alt om spørgsmålet
så havde han/hun jo sikkert ikke brug for at spørge)
Avatar billede sonurpals Nybegynder
31. december 2005 - 13:23 #10
Det var en fejl... det må i undskylde
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