C sharp - Linq to sql

 
Vista:

Linq to sql

Publicado por jose antonio (3 intervenciones) el 13/10/2010 18:11:32
Bueno hola a todos quisiara saber si alguien me puede ayudar a pasar este codigo a linq to sql
para hacer un arreglo


public static ArrayList LeeTablaGenerica(String sql)
{
try
{
OleDbCommand cmd = new OleDbCommand(sql, conn);
OleDbDataReader reader = cmd.ExecuteReader();

ArrayList info = new ArrayList();
while (reader.Read())
{
Object[] v = new object[reader.FieldCount];
reader.GetValues(v);
info.Add(v);
}
reader.Close();
return info;
}
catch (Exception e )
{
Console.WriteLine(e.Message);
}

return null;

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Linq to sql

Publicado por m (97 intervenciones) el 14/10/2010 01:54:15
Una manera podria ser:
agregas la libreria
using System.Data.Linq; // necesario para DataContext

public static ArrayList LeeTablaGenerica(String sql)
{

string sConn = "Data source=(local); Initial Catalog=DataBaseX; Trusted_Connection=True";

DataContext context = new DataContext(sConn);
//leemos la tabla
var tGenerica=context.GetTable<TablaGenerica>();
var lstDatos = from d in tGenerica
select d;

return lstDatos.ToArray();


}

en otra clase declaras la tabla generica
usando linq
agregas la libreria:

using System.Data.Linq.Mapping;

[Table(Name = "TablaGenerica")]
public class TablaGenerica
{
//aqui declaras los campos de la tabla generica
[Column(Name="ID",DbType="Int",IsDbGenerated=true)]
public int ID { get; set; }


[Column(Name="Nombre",DbType="nchar(10)",IsDbGenerated=false)]
public string Nombre{ get; set; }
}


saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Linq to sql

Publicado por jose antonio (3 intervenciones) el 14/10/2010 20:45:27
con respecto a la solucion que me dieron lo agradescomucho pero quisiera que me explicara la segunda parte por que nola comprendo muy bien, y en la primera parte lo de Arryslist no me sale esa propiedad los estoy manejando como List<array> estoy trabajando en visual c# 2010
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Linq to sql

Publicado por m (97 intervenciones) el 15/10/2010 00:20:46
Bueno suponiendo que la primera parte ya la comprendiste.

Linq te ofrece la posibilidad de declarar una clase-tabla y hace
un mapeo de dicha tabla de tu base de datos a una clase.

aca un articulo un poco mas detallado:
http://en.csharp-online.net/LINQ_to_ADO.NET%E2%80%94Map_Fields_Properties_to_Table_Columns

utiliza la libreria

using System.Data.Linq.Mapping;

con esto puedes utilizar los modificadores,
Table // aqui escribes el nombre de la tabla de tu base de datos,

Column // te sirve para declarar las columnas que contiene tu tabla,
en esta propiedad escribes el nombre del campo, tipo de dato y si es
generado por la base de datos, como los indices o valores por default,

Si te das cuenta estas generando una clase llamada TablaGenerica y puedes
utilizarla como cualquier otro objeto y tienes acceso alas propiedades

//lo siguiente es un ejemplo de como puedes comenzar a declara tu tabla-clase

El mapeo de la base de datos a linq tambien se puede generar de manera automatica agregando un proyecto linq aunque ya no recuerdo como se
agrega solo es cuestion de que investigues

[Table(Name = "TablaGenerica")]
public class TablaGenerica
{
//aqui declaras los campos de la tabla generica
[Column(Name="ID",DbType="Int",IsDbGenerated=true)]
public int ID { get; set; }

[Column(Name="Nombre",DbType="nchar(10)",IsDbGenerated=false)]
public string Nombre{ get; set; }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Linq to sql

Publicado por m (97 intervenciones) el 15/10/2010 00:28:41
Ya para la generacion automatica de clases linq to sql
agregas un nuevo elemento al proyecto:

Linq to sql clases

genera un archivo extension .dbml
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar