C# SQL kode
Daily Rush › Debat › Programmering › C# SQL kode
- Dette indlæg indeholder 16 kommentarer, har 10 deltagere og blev senest opdateret af
VFF1983 for 8 år, 9 måneder siden.
- ForfatterEmne
- 03/04/2012 kl. 10:40#0
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
ThomasMine sider:
thomasrasmussen.dk
Netradio.nu
KalenderNet.dk - ForfatterEmne
- ForfatterKommentarer
- 03/04/2012 kl. 10:43 #1
Er det C# koden eller SQL koden du har problemer med?
Og husk nu: densutterjoikksigselv.dk
03/04/2012 kl. 10:44 #2Og hvilken database kører du op imod?
MySQL, MS SQL Server?
Og husk nu: densutterjoikksigselv.dk
03/04/2012 kl. 10:59 #3søg på LINQ to SQL
03/04/2012 kl. 11:03 #4Jeg ville også kigge på Linq to SQL, det er dejligt simpelt, anbefaler altid denne stribe artikler af Scott Guthrie:
(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
03/04/2012 kl. 11:22 #5Stakkels 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
03/04/2012 kl. 11:39 #6#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
03/04/2012 kl. 11:42 #7Tak 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.dk03/04/2012 kl. 12:29 #8Ellers kunne du jo også poste din kode her, så vi kan kigge på den.
Steam: Krisp89 - Origin: Krisp1989 - BattleTag: Krisp#2319
03/04/2012 kl. 13:07 #9Linq 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.
03/04/2012 kl. 13:26 #10Kan 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.dk03/04/2012 kl. 13:28 #11Hvis 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.
03/04/2012 kl. 13:30 #12#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.dk03/04/2012 kl. 13:57 #13Husk 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.
03/04/2012 kl. 14:46 #14#10 Hvilken fejl får du?
Jeg hoster når jeg kysser
03/04/2012 kl. 14:55 #15#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 LinqBetWizer.com - Sports-betting made easy
- ForfatterKommentarer
- Du skal være logget ind for at kommentere på dette indlæg.
























