Avatar billede majbom Novice
01. december 2005 - 13:41 Der er 7 kommentarer og
1 løsning

MySQL - insert into problem

hejsa...

nu har jeg siddet og ledt efter, et sted hvor de viser et eksempel med "inset into" i MySQL med C#, men jeg kan intet brugbart finde..

jeg bruger MySQL Connector Net 1.0.7 hvis det gør en forskel...

jeg har kigget i eksemplet, men der bliver brugt noget med datatable som den bare opdaterer med eller noget i den retning...

på forhånd tak
Avatar billede Syska Mester
01. december 2005 - 14:50 #1
Hej,

Her er et spm, godt nok om MSSql, men det virker på 100% samme måde... bare byt "Sql" ud med "MySql" i klasse navnene... så er du godt på vej....

http://exp.dk/spm/668285

// ouT
Avatar billede arne_v Ekspert
02. december 2005 - 04:18 #2
et and et eksempel fra lageret:

using System;
using System.Data;
using MySql.Data.MySqlClient;

class MainClass
{
    public const int N = 100000;
    public static void Main(string[] args)
    {
        test("HEAP");
        test("MyISAM");
        test("InnoDB");
    }
    private static void test(string tbltyp)
    {
        MySqlConnection con = new MySqlConnection("Database=Test;Data Source=localhost;User Id=;Password=");
        con.Open();
        MySqlCommand cre = new MySqlCommand("CREATE TABLE m (id INTEGER PRIMARY KEY, val VARCHAR(50)) TYPE=" + tbltyp, con);
        cre.ExecuteNonQuery();
        long t1 = DateTime.Now.Ticks;
        for(int i = 0; i < N; i++)
        {
            MySqlCommand ins = new MySqlCommand("INSERT INTO m VALUES(" + i + ",'Dette er en test')", con);
            ins.ExecuteNonQuery();
        }
        long t2 = DateTime.Now.Ticks;
        MySqlCommand drp = new MySqlCommand("DROP TABLE m", con);
        drp.ExecuteNonQuery();
        con.Close();
        Console.WriteLine(tbltyp + ": INSERT " + N + " record in " + (t2-t1)/10000 + " milliseconds");
    }
}
Avatar billede majbom Novice
02. december 2005 - 09:20 #3
burde det her ikke virke:
MySqlCommand comm = new MySqlCommand("INSERT INTO media VALUES('','test', 'test', 'test', 1, 2)", conn);
comm.ExecuteNonQuery(); ??

jeg kan køre den uden den brokker sig når forbindelsen ikke er åbnet, og der sker intet når den er blevet åbnet...
Avatar billede majbom Novice
02. december 2005 - 09:24 #4
ups, mig der havde lavet en fejl...

men et andet problem: når min første kolonne i tabellen er en auto_increment og jeg ikke skal sende en værdi med, hvad så? der angives jo ikke nogle steder hvad der skal i hvilke felter i databasen, som men gør i f.eks. php...
Avatar billede majbom Novice
02. december 2005 - 11:31 #5
har fundet ud af det...

nogle der smider et svar? jeg har brugt en blanding af jeres kommentare, så hvis i smider et svar hver så kører det. :)
Avatar billede arne_v Ekspert
02. december 2005 - 14:07 #6
ok
Avatar billede arne_v Ekspert
02. december 2005 - 14:07 #7
du kan både sende NULL til auto increment feltet

eller angive felter eksplicit efter tabelnavn
Avatar billede majbom Novice
02. december 2005 - 14:44 #8
ja, jeg fandt ud af at men kunne indsætte kolonnenavnene i () inden "VALUE()" :)

takker
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