lørdag, januar 23, 2021

C# SQL kode

Daily Rush Debat Programmering C# SQL kode

  • Forfatter
    Emne
  • #0

    VFF1983
    Bruger
    442 indlæg
    Offline

    Hej DailyRush

    Tænkte om nogen herinde har erfaring med SQL kommandoer pakket ind i C# kode eller alternativt kender nogle gode steder på nettet at spørge/hente information?

    Jeg har lidt problemer med at få noget (relativt simpelt) kode til at virke efter hensigten, og synes ikke de eksempler jeg har fundet på nettet indtil videre, har virket.

    Mvh
    Thomas

    Mine sider:

    thomasrasmussen.dk
    Netradio.nu
    KalenderNet.dk

Viser 15 kommentarer - 1 til 15 (af 16 i alt)
  • Forfatter
    Kommentarer
  • #1

    Festival_H
    Bruger
    4.630 indlæg
    Offline

    Er det C# koden eller SQL koden du har problemer med?

    Og husk nu: densutterjoikksigselv.dk

    #2

    Festival_H
    Bruger
    4.630 indlæg
    Offline

    Og hvilken database kører du op imod?

    MySQL, MS SQL Server?

    Og husk nu: densutterjoikksigselv.dk

    #3

    Arcadia
    Bruger
    202 indlæg
    Offline

    søg på LINQ to SQL

    #4

    Holger-IST-
    Bruger
    6.970 indlæg
    Offline

    Jeg ville også kigge på Linq to SQL, det er dejligt simpelt, anbefaler altid denne stribe artikler af Scott Guthrie:

    http://weblogs.asp.net/scottgu/archive/2007/09/07/linq-to-sql-part-9-using-a-custom-linq-expression-with-the-lt-asp-linqdatasource-gt-control.aspx

    (starter med del 9, da den har links til de andre dele)

    - Holger "A woman drove me to drink and I didn't even have the decency to thank her." - W. C. Fields

    #5

    Bams
    Bruger
    2.011 indlæg
    Offline

    Stakkels fyr spørger til at eksekvere noget sql fra hans C# kode, og så får han stukket en LINQ-guide i hånden

    Tag et kig her.

    http://www.codeproject.com/Articles/4416/Beginners-guide-to-accessing-SQL-Server-through-C

    Det er meget nemt, og du kan klare dig med 3-4 linjers kode alt efter om du skal insert/update/delete eller select.

    1. En SQL Connection – SqlConnection myConnection = new SqlConnection(“user id=username;” +
    “password=password;server=serverurl;” +
    “Trusted_Connection=yes;” +
    “database=database; ” +
    “connection timeout=30”);
    2. En SQL Command – SqlCommand myCommand = new SqlCommand(“Indsæt dit SQL”, myConnection);
    3. myCommand.ExecuteNonQuery();

    Jeg hoster når jeg kysser

    #6

    -SANTA-Julemanden
    Bruger
    7.404 indlæg
    Offline

    #0
    Vil anbefale dig at ignorere #5 og bruge lidt tid på LINQ – det er helt sikkert den beskedne investering af tid værd!

    I meget få ord:
    Linq giver dig dine tabeller/sql-kald som objekter som du kan benytte direkte i din c# kode som alle andre objekter.

    BetWizer.com - Sports-betting made easy

    #7

    VFF1983
    Bruger
    442 indlæg
    Offline

    Tak for rådene, vil kigge lidt på LINQ og det andet link

    Det er MS SQL jeg arbejder med og problemerne opstår når jeg skal lave min connectionstring til databasen, og vil bruge min egne parametre til at indsætte istedet for at hardcode noget. Det er et simpelt program til at gemme kontaktinformationer i en database (navn, adresse osv.).

    Mine sider:

    thomasrasmussen.dk
    Netradio.nu
    KalenderNet.dk

    #8

    Krisp
    Bruger
    5.059 indlæg
    Offline

    Ellers kunne du jo også poste din kode her, så vi kan kigge på den.

    Steam: Krisp89 - Origin: Krisp1989 - BattleTag: Krisp#2319

    #9

    Breeze
    Bruger
    1.005 indlæg
    Offline

    Linq er query sproget, Linq 2 SQL er dog forældet og du skal i stedet bruge Entity Framework.

    Det er super simpelt og kan scale helt ud til skyen.

    #10

    VFF1983
    Bruger
    442 indlæg
    Offline

    Kan da se jeg aldrig har kigget på LinQ før, ser lidt nyt ud for mig. Men må lige prøve at kigge nærmere på det, eller Entity FrameWork som der bliver foreslået.

    #8 Kan da godt prøve at smide lidt kode op, måske er der nogle åbenlyse fejl jeg ikke selv har opdaget

    Kommer her: (parametrene i Insert metoden får jeg fra et simpelt WPF vindue)

    public void Insert(string navn, string adresse, string tlf, string mail, string diverse)
    {

    string connectionString = “Integrated Security=True;” + “Initial Catalog=MineKontakter;” + “Data Source=localhost;”;

    string sql = (“INSERT INTO KontaktInfo (Navn, Adresse, Tlf, Mail, Diverse) ” + “VALUES (” + navn + “,” + adresse + “,” + tlf + “,” + mail + “, ” + diverse + “)”);

    ExecuteSQL(sql, connectionString);
    }

    public static void ExecuteSQL(string sql, string connectionString)
    {
    SqlCommand cmd = null;
    SqlConnection conn = new SqlConnection(connectionString);
    conn.Open();
    cmd = new SqlCommand(sql, conn);
    MessageBox.Show(sql.ToString());
    try
    {
    cmd.ExecuteNonQuery();
    conn.Close();
    }
    catch (SqlException ex)
    {

    MessageBox.Show(ex.ToString());
    }

    MessageBox.Show(“Done”);

    }
    }

    Mine sider:

    thomasrasmussen.dk
    Netradio.nu
    KalenderNet.dk

    #11

    Cancerman
    Bruger
    1.655 indlæg
    Offline

    Hvis du ender med, at fyre SQL af direkte med en SqlCommand, så husk lige og check dine input parametere, inden du åbner for sql injection.

    #12

    VFF1983
    Bruger
    442 indlæg
    Offline

    #11 Ok, så langt er jeg ikke lige kommet. Programmet er dog kun et lille hjemmeprojekt, ikke noget seriøst program.

    Fejlen når jeg kører programmet, er “Invalid Column Name…”, og har selvfølgelig dobbelttjekket at jeg har brugt de rigtige navne 100 %.

    Mine sider:

    thomasrasmussen.dk
    Netradio.nu
    KalenderNet.dk

    #13

    gulbaek
    Bruger
    142 indlæg
    Offline

    Husk lige at sikre dig at der ikke er forskel på store og små bogstaver.

    Når du sender sql sætninger afsted på den måde, så kan de godt drille lidt, hvis de ikke er skrevet præcis på samme måde som i databasen.

    Og som de andre anbefaler så kig på Entity Framework, det er rimelig nemt at komme igang med, men hold dig fra Linq 2 Sql, det er for bøvlet at holde ved lige, når du laver ændringer i databasen.

    Alternativt så kan du kaste dig ud i brugen af stored procedure, hvilket jeg selv foretrækker.

    #14

    Bams
    Bruger
    2.011 indlæg
    Offline

    #10 Hvilken fejl får du?

    Jeg hoster når jeg kysser

    #15

    -SANTA-Julemanden
    Bruger
    7.404 indlæg
    Offline

    #12

    Hvad sker der hvis du ændrer det til:

    string sql = (“INSERT INTO KontaktInfo (Navn, Adresse, Tlf, Mail, Diverse) ” + “VALUES (‘” + navn + “‘,'” + adresse + “‘,'” + tlf + “‘,'” + mail + “‘,’ ” + diverse + “‘)”);

    ?
    Vil dog stadig anbefale dig at benytte noget Linq

    BetWizer.com - Sports-betting made easy

Viser 15 kommentarer - 1 til 15 (af 16 i alt)
  • Du skal være logget ind for at kommentere på dette indlæg.