我有以下代码,
我正在尝试编写一个Linq查询来从DataSet中获取数据,或者从List中获取数据,但不幸的是,当我尝试使用Linq的关键字ie(from,select,where)时,框架告诉我存在语法错误。
例如,如果我在tab中的表中编写句子 .AsEnumerable()select; 框架表示无法找到类型或命名空间名称'from'。
我是Linq的新手,所以请任何人指导我并帮助我解决这个问题。
任何页面,链接教程可以帮助我学习Linq将不胜感激。
using System;
using System.Linq;
using System.Linq.Expressions;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Data.Common;
using System.Globalization;
namespace linqToDataSet
{
class Program
{
static void Main(string[] args)
{
string connectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename='C:\Users\Spider Wep\Documents\linqTodataset.mdf';Integrated Security=True;Connect Timeout=30";
using (SqlConnection c = new SqlConnection(connectionString))
{
c.Open();
// 2
// Create new DataAdapter
using (SqlDataAdapter a = new SqlDataAdapter(
"SELECT * FROM [Table]", c))
{
// 3
// Use DataAdapter to fill DataTable
DataSet t = new DataSet();
a.Fill(t);
DataTable tab = t.Tables["Table"];
List<int> integers = new List<int> { 1,2,3};
}
}
}
}
}
答案 0 :(得分:1)
当您使用select
时,您需要选择某些内容,例如:
var rows = (from Table in tab.AsEnumerable() select Table);
重要的是要注意LINQ
使用延迟执行,这意味着在您使用foreach
迭代结果之前不会执行此查询,或者使用某种方法立即强制执行ToList
或ToArray
。
如果您对此不熟悉,可能需要查看一些有用的资源:
答案 1 :(得分:-2)
SqlConnection conn = new SqlConnection();
conn.ConnectionString =
@"Data Source=ALIPC;initial catalog=TrainingDatabase;integrated security=True";
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select * from question";
cmd.Connection = conn;
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
return dt;
// you can call this method wherever
classname c=new classname();
foreach(datarow dr in c.methodname().rows)
{
user u=new user();
u.userid = dr["userid"];
list.add(u);
}
return list;