Avatar billede jytte Nybegynder
27. april 2005 - 16:46 Der er 7 kommentarer og
2 løsninger

update i .Net

I ASP har jeg en procedure der ser således ud (objCon er global):

Sub SPOERGSMAALUpdate(spoergsmaal_id, testopgave_id, strTestopgaveSpoergsmaal)
    dim strSQL, strLokal_TestopgaveSpoergsmaal
    strLokal_TestopgaveSpoergsmaal = replace(strTestopgaveSpoergsmaal,"'","''")
    strSQL = strSQL & "UPDATE spoergsmaal SET spoergsmaal='" & strTestopgaveSpoergsmaal & "' WHERE spoergsmaal_id=" & spoergsmaal_id
    objCon.execute strSQL
End Sub 'SPOERGSMAALUpdate

Hvordan vil den tilsvarende procedure se ud i .Net ?
Avatar billede nielle Nybegynder
27. april 2005 - 20:14 #1
Det afhænger dels af hvilket sprog ud udvikler i, og dels hvilken type database du udvikler imod.
Avatar billede nielle Nybegynder
27. april 2005 - 20:30 #2
I C# og med en Odbc forbindelse til databasen vil det se nogenlunde sådan her ud:

static void SPOERGSMAALUpdate(int spoergsmaal_id, int testopgave_id, string strTestopgaveSpoergsmaal)
{
    string strSQL, strLokal_TestopgaveSpoergsmaal;
    strLokal_TestopgaveSpoergsmaal = strTestopgaveSpoergsmaal.Replace("'", "''");
    strSQL = "UPDATE spoergsmaal SET spoergsmaal='" + strTestopgaveSpoergsmaal + "' WHERE spoergsmaal_id=" + spoergsmaal_id;

    OdbcCommand Command = new OdbcCommand(strSQL, objCon);
    objCon.Open();
    Command.ExecuteNonQuery();
    objCon.Close();
}
Avatar billede nielle Nybegynder
27. april 2005 - 20:31 #3
Iøvrigt forstår jeg ikke helt hvorfor du har variablen testopgave_id med? Den bruges nemlig slet ikke.
Avatar billede jytte Nybegynder
28. april 2005 - 12:37 #4
Jeg vil gerne udvikle VB.NET da jeg går ud fra det er det nemmeste når jeg kommer fra ASP.
Jeg skal enten bruge mssql eller mysql (sandsynligvis mysql) som database.

I dit eksempel skal jeg skrive enkelt-stroffer om strenge. Jeg mener at det kan undgås ved at bruge noget med "@" i mssql og "?" i mysql --- ved du hvordan man gør det ?

og ja testopgave_id bruges ikke, jeg fik ikke lige skåret alt overflødigt væk fra eksemplet :-)
Avatar billede arne_v Ekspert
28. april 2005 - 12:41 #5
Du tænker på parameters.

Hvis du bruger MySQL Connector for .NET fremfor ODBC (hvilket jeg vil anbefale),
så kan du også bruge @ i MySQL.
Avatar billede arne_v Ekspert
28. april 2005 - 12:42 #6
Jeg havde følgende eksempel på brug af parameter med MySQL Connector for .NET
liggende:

using System;
using System.Threading;
using ByteFX.Data.MySqlClient;

class MainClass
{
    public static void Main(string[] args)
    {
        MySqlConnection con = new MySqlConnection("Database=Test;Data Source=localhost;User Id=;Password=");
        con.Open();
        MySqlCommand cre = new MySqlCommand("CREATE TABLE dtest (i INTEGER PRIMARY KEY, d DATETIME)", con);
        cre.ExecuteNonQuery();
        MySqlCommand ins = new MySqlCommand("INSERT INTO dtest VALUES (@i, @d)", con);
        ins.Parameters.Add("@i", MySqlDbType.Int);
        ins.Parameters.Add("@d", MySqlDbType.Datetime);
        for(int i = 0; i < 10; i++)
        {
            ins.Parameters["@i"].Value = i;
            ins.Parameters["@d"].Value = DateTime.Now;
            Thread.Sleep(1000);
            ins.ExecuteNonQuery();
        }
        MySqlCommand sel = new MySqlCommand("SELECT * FROM dtest", con);
        MySqlDataReader rdr = sel.ExecuteReader();
        while(rdr.Read())
        {
            int i = (int)rdr[0];
            DateTime d = (DateTime)rdr[1];
            Console.WriteLine(i + " " + d);
        }
        rdr.Close();
        MySqlCommand drp = new MySqlCommand("DROP TABLE dtest", con);
        drp.ExecuteNonQuery();
        con.Close();
    }
}

Det er en console applikation og ikke en ASP.NET side, men kaldene til
databasen er de samme.
Avatar billede jytte Nybegynder
03. maj 2005 - 20:11 #7
hvis I lægger nogle svar fordeler jeg pointene.
Avatar billede arne_v Ekspert
03. maj 2005 - 20:27 #8
.
Avatar billede nielle Nybegynder
03. maj 2005 - 20:30 #9
:^)
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