2009-04-17 65 views
9

Hasta ahora en mi carrera de programación (dos años) no he tenido mucha experiencia en bases de datos, pero la compañía donde trabajo ahora usa bases de datos extensivamente para su producto, y me siento detrás de la curva.Introducción a la interacción de bases de datos con C#

Así que me gustaría saber la mejor manera de comenzar a aprender la interacción de la base de datos con C#. He leído sobre LINQ-to-SQL y ADO.net. ¿Son estas las tecnologías correctas para investigar?

¿Por dónde empiezo?

EDIT: Gracias por todas las respuestas. Hubo muchos buenos, tuve dificultades para elegir uno como "la" respuesta. Esto me ayuda mucho!

Respuesta

14

Yo sugeriría invertir su tiempo en aprender Microsoft SQL Server sí, de datos Access Application Block de Enterprise Library y Marco ADO.NET Entity.

punto de entrada para el aprendizaje de SQL Server es aquí ->SQL Server Developer Center
punto de entrada para el aprendizaje de ADO.NET está aquí ->Learning ADO.NET en MSDN

En primer lugar, con el fin de obtener una buena comprensión de lo que es ADO.NET, consulte los enlaces siguientes:

Aprenda a escribir consultas directas en C# a SQL Server sin utilizar marcos y herramientas ORM, luego continúe con el aprendizaje de tecnologías más avanzadas en la familia ADO.NET.

Ver también:

Es posible que también desee descargar LINQPad, que es la herramienta perfecta para jugar con LINQ.

También sugiero suscribirse a ADO.NET relacionados los canales RSS:

También puedes ver proyectos de código abierto existentes en CodePlex.com que utilizan estas tecnologías y su fuente en digg códigos.

Los grandes libros sobre el tema para usted:

+2

Sé consciente de que LINQ to SQL ha sido SUS está pendiente, por lo que será mejor que a la larga se concentre en Entity Framework. – madcolor

+0

Sí, ADO.NET es imprescindible si quieres hacer algo orientado a bases de datos en .NET. Todos los demás marcos de datos se basan en eso (entidades, LINQ a conjuntos de datos, LINQ a SQL, etc.). Por supuesto, ADO.NET se puede usar por sí mismo, y esto es bastante aceptable para proyectos pequeños/bases de datos menores, aunque es probable que vaya con el marco Entidades para algo más grande, ORM (Object Relational Mappers) siendo favorecido hoy en día. – Noldorin

6

ACTUALIZACIÓN: Una cosa esta respuesta no tenía en el pasado vínculos a la información para SQL y principiantes de bases de datos, así que también incluiré algunos enlaces relevantes para que usted (o cualquier otra persona) pueda repasar su SQL y otras habilidades de diseño de bases de datos.

Mucho de esto se toma de otra respuesta hoy he escrito, pero entra en detalles acerca de sus problemas exactos:

respuesta original:

Esto parece que necesita más o menos una introducción básica a c conectar y manipular una base de datos desde C#. El cartel de arriba dice que busque en LINQ to SQL, pero también puede buscar en el marco subyacente más básico de ADO.NET que le permitirá comprender los conceptos básicos de cómo funciona.

Además, puede utilizar este sitio right here para obtener una serie de tutoriales de bases de datos diferentes para C#.

Editar: Más información de C# Station, CodeProject y Codersource

Editar 2: Si usted está interesado en cosas como LINQ to SQL como otros han mencionado más arriba, aquí hay algunos tutoriales de C# Corner y C-Sharp Online

Editar 3: Otros también sugieren cosas como ADO.NET Entity Framework. No necesariamente lo sugiero para principiantes que aún necesitan comprender los fundamentos del trabajo con una base de datos. Aquí hay alguna información de la MSDN Overview

Ejemplo simple (Esto se tira directamente desde el enlace C# Estación dado anteriormente)

Listado 1. El uso de un SqlConnection

using System; 
using System.Data; 
using System.Data.SqlClient; 

/// <summary> 
/// Demonstrates how to work with SqlConnection objects 
/// </summary> 
class SqlConnectionDemo 
{ 
    static void Main() 
    { 
     // 1. Instantiate the connection 
     SqlConnection conn = new SqlConnection(
      "Data Source=(local);Initial Catalog=Northwind; 
      Integrated Security=SSPI"); 

     SqlDataReader rdr = null; 

     try 
     { 
      // 2. Open the connection 
      conn.Open(); 

      // 3. Pass the connection to a command object 
      SqlCommand cmd = 
       new SqlCommand("select * from Customers", conn); 

      // 
      // 4. Use the connection 
      // 

      // get query results 
      rdr = cmd.ExecuteReader(); 

      // print the CustomerID of each record 
      while (rdr.Read()) 
      { 
       Console.WriteLine(rdr[0]); 
      } 
     } 
     finally 
     { 
      // close the reader 
      if (rdr != null) 
      { 
       rdr.Close(); 
      } 

      // 5. Close the connection 
      if (conn != null) 
      { 
       conn.Close(); 
      } 
     } 
    } 
} 
+0

+1: LINQ y las entidades están muchas capas encima de ADO.NET. Si recién está comenzando con la programación de la base de datos, debería comenzar con las clases principales de System.Data y continuar desde allí a través de los contenedores de Enterprise Library. –

+0

Dave: Estoy totalmente de acuerdo. Con demasiada frecuencia vemos que las personas recomiendan soluciones, herramientas, marcos, etc. a los usuarios que apenas comprenden los conceptos básicos. Eso solo deja la puerta abierta para cometer grandes errores porque no entiendes lo que sucede debajo de todas esas capas. – TheTXI

2

Personalmente , Creo que es bueno entender qué es lo que hacen estos "marcos". Empezaría con algunas consultas básicas para tratar de entender cómo funciona SQL. Puede que no termines usándolo mucho una vez que comiences, pero siempre he descubierto que es más fácil entender por qué necesito un marco si puedo entender lo que está haciendo por mí.

+0

De acuerdo (y quiero votar pero estoy fuera por el resto del día). La gente se olvida de predicar lo básico antes de evangelizar los nuevos productos que se supone que hacen que todo sea mucho mejor. – TheTXI

0

Primero recoja cualquier libro de sql de Ben Forta. Una vez que tenga los fundamentos básicos, podrá entender las bibliotecas, los bloques y otros marcos. Le ayudará mucho en su carrera comprender bien las bases de datos.

2

Sí, se han clavado las tecnologías adecuadas.

que tienen algunos pdfs fantásticas y gratuitas/libros electrónicos para que usted mire:

ADO.NET

http://www.murach.com/books/adon/chapters.htm (VB y ado.net

http://www.springerlink.com/content/w2126101r8qr2052/ (fundamentos de ADO.NET con C#)

http://archive.visualstudiomagazine.com/books/chapters/1590595122.pdf (vb & C#)

http://dotnet.jku.at/courses/tutorial/05.ADO.NET.pdf (gran visión general de PowerPoint)

http://docs.msdnaa.net/ark_new3.0/cd3/content/Courses%5CVargas%5CCh12.pdf (libro ado.net)

http://media.wiley.com/product_data/excerpt/38/07821418/0782141838-1.pdf (agradable)

LINQ a SQL LINQ de Scott Gu a SQL es probablemente todo lo necesario para un buen comienzo:

http://it-box.blogturk.net/wp-content/themes/it-box/files/LINQToSql.pdf

Cuestiones relacionadas