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 ?
Annonceindlæg fra Kommando
27. april 2005 - 20:14
#1
Det afhænger dels af hvilket sprog ud udvikler i, og dels hvilken type database du udvikler imod.
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(); }
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.
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 :-)
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.
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.
hvis I lægger nogle svar fordeler jeg pointene.
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.