2012-04-01 6 views
1

Schritten Ich versuche, LINQ to SQL Server in C#/verwende NET auf Visual Studio 2010.Wie man Daten von LINQ to SQL bekommen -. Ersten

Als erstes habe ich die Tabelle „Details erstellen "in SQL Server; Dann erstelle ich im Projekt eine LINQ to SQL-Klasse namens DataClasses (.dbml).

Gut, nachdem ich die Verbindung zur Datenbank eingestellt habe, möchte ich die Daten aus der Tabelle Details extrahieren.

Ich tue dies auf einem Webformular Page_Load:

DataClassesDataContext data = new DataClassesDataContext(); 

aber scheint es die falsche approch ist? Wie soll ich es machen?

+1

[Linq zu SQL] (http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx) –

Antwort

1

SomePageAspx.cs

protected void Page_Load(object sender, EventArgs e){ 
    List<MyBook> books = MyBook.GetAllBooks(); 
} 

MyBook.cs

public partial class MyBook 
{ 
    public static List<MyBook> GetAllBooks() 
    { 
     using (myDBContext db = new myDBContext()) 
     { 
      var books = from o in db.MyBooks 
         select o; 
      return books.ToList(); 
     } 
    } 
} 

nur eine grobe Skizze, aber es sollte genug sein, damit Sie auf die Idee zu bekommen. Wenn nicht, frag.

+0

welcher Art von Objekt myDBContext ist? – Mayank

+0

@Mayank, es ist die Klasse, die Sie mit VS generiert haben, die die Informationen über Ihre Datenbank enthält. (.dbml) – walther

1

Sie müssen Klassen für alle Tabellen und Methoden für alle gespeicherten Prozeduren in der Datenbank erstellen. Dazu können Sie Ihren Server Explorer öffnen und einfach Tabellen und gespeicherte Prozeduren ziehen und ablegen. in der .dbml-Datei, nachdem Sie die .dbml-Datei in Visual Studio geöffnet haben. Danach erstellt Visual Studio alle notwendigen Codes, um Daten aus Ihrer Datenbank zu erhalten. Sie können dann einfach einen gespeicherten proc als eine Methode Ihrer DataClassesDataContext-Klasse aufrufen oder eine Abfrage schreiben. Ich bevorzuge das Aufrufen gespeicherter Prozeduren. Wenn Sie also einen gespeicherten Prozess mit dem Namen "GetEmployeeRecord" in Ihrer Datenbank hätten, würden Sie Folgendes tun:

var empRec = data.GetEmployeeRecord ('your_parameters');

this helps :)

+0

Ok! In der Tat, wenn ich es als Prova nenne, kann ich 'Prova prova = neues Prova();'. Aber wenn ich das tue, dann 'Response.Write (prova.title_it);' druckt eine leere Zeichenkette ... – markzzz

+0

In diesem Fall wäre "title_it" eine Spalte, so dass Sie eine generische Liste der Klasse "title_it" erhalten " im Gegenzug. Sie müssen eine Abfrage schreiben wie: var title = von * aus prova.books select *; oder Sie müssen die gespeicherte Prozedur aufrufen –

+0

versuchen Sie dieses Vid: http://www.youtube.com/watch?v=B0gD0NqbGHk –