using System; using System.Data; using System.Data.SqlClient;
namespace E { public class Program { public static void Main(string[] args) { using(SqlConnection con = new SqlConnection(@"Server=ARNEPC3\SQLEXPRESS;Integrated Security=SSPI;Database=Test")) { con.Open(); SqlCommand sel1 = new SqlCommand("SELECT id,name,amount FROM somedata WHERE id > 1", con); SqlDataReader rdr1 = sel1.ExecuteReader(); while(rdr1.Read()) { Console.WriteLine(rdr1["id"] + " " + rdr1["name"] + " " + rdr1["amount"]); } rdr1.Close(); SqlCommand sel2 = new SqlCommand("SELECT name,SUM(amount) AS total FROM somedata WHERE id > 1 GROUP BY name", con); SqlDataReader rdr2 = sel2.ExecuteReader(); while(rdr2.Read()) { Console.WriteLine(rdr2["name"] + " " + rdr2["total"]); } rdr2.Close(); } Console.ReadKey(); } } }
using System; using System.Linq; using System.Data.Linq; using System.Data.Linq.Mapping; using System.Data.Linq.SqlClient; using System.Data.SqlClient;
namespace E { [Table(Name="somedata")] public class SomeData { [Column(Name="id",IsPrimaryKey=true)] public int Id; [Column(Name="name")] public string Name; [Column(Name="amount")] public decimal Amount; }
public class Program { public static void Main(string[] args) { using(SqlConnection con = new SqlConnection(@"Server=ARNEPC3\SQLEXPRESS;Integrated Security=SSPI;Database=Test")) { DataContext db = new DataContext(con); Table<SomeData> somedata = db.GetTable<SomeData>(); var q1a = from sd in somedata where sd.Id > 1 select new { sd.Id, sd.Name, sd.Amount }; foreach(var r in q1a) { Console.WriteLine(r.Id + " " + r.Name + " " + r.Amount); } var q1b = somedata.Where((sd) => sd.Id > 1).Select((sd) => new { sd.Id, sd.Name, sd.Amount }); foreach(var r in q1b) { Console.WriteLine(r.Id + " " + r.Name + " " + r.Amount); } var q2a = from sd in somedata where sd.Id > 1 group sd by sd.Name into g select new { Name=g.Key, Total=g.Sum((v) => v.Amount)}; foreach(var r in q2a) { Console.WriteLine(r.Name + " " + r.Total); } var q2b = somedata.Where((sd) => sd.Id > 1).GroupBy((v) => v.Name).Select((g) => new { Name=g.Key, Total=g.Sum((v) => v.Amount) }); foreach(var r in q2b) { Console.WriteLine(r.Name + " " + r.Total); } } Console.ReadKey(); } } }
Synes godt om
Slettet bruger
13. juli 2008 - 09:55#4
Hej Arne
Tak for dit svar, jeg skal kigge på det enten i aften eller i morgen. Men umiddelbart så ligner q2b pænt meget det jeg selv var kommet frem til. Jeg syntes bare at det er svært at finde noget godt materiale på nettet om LINQ to SQL
Man kan finde lidt. Man skal så frasortere det der var til tidlige beta versioner og som ikke gælder længere.
Hvis du skal arbejde meget med det, så overvej at købe en eller flere bøger om emnet. Det er et komplekst emne som ikke kan gennemgåes komplet i en 3 page online tutorial.
Synes godt om
Slettet bruger
13. juli 2008 - 16:27#6
Ja, det var tanken at jeg ville bruge det, primært til SQL, men det er også ret stærkt både til XML og Objects. Er der nogen special bog du kan anbefale ?
Du skal lige markere mit navn og klikke accepter ...
Synes godt om
Slettet bruger
29. august 2008 - 16:00#12
ups - dumme mig ;)
Synes godt om
Ny brugerNybegynder
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.