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 tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.