public DataTable test(int id) {

var dt = GetLanguageDataTable(pfAppId);
dt.AsEnumerable().ToList().ForEach(p => { mm m = new mm(); var lang = p.Field<string>("languageName"); p.SetField<string>("languageName", m.GetProperLanguage(lang)); });
return dt;
}

var path = Server.MapPath("~/App_Data/ff.txt");
var invalidEMails = MailHelper.GetInvalidEMailList(path);
dt.AsEnumerable().ToList().ForEach(p => {
var email = p.Field<string>("ff");
if (invalidEMails.FirstOrDefault(w => w.ToLower() == email.ToLower())!=null) {
dt.Rows.Remove(p);
}
});

DataTable dts;
DataRow[] foundRow;
foundRow = dts.Select("ID=99", "");
foreach (DataRow row in foundRow)
{
dts.Rows.Remove(row);

public class HomeController : BaseController {
public class Student {
public int StudentId { get; set; }
public string StudentName { get; set; }
public string Address { get; set; }
public string MobileNo { get; set; }
public int? Status { get; set; }
}
public static List<T> ConvertDataTableToList<T>(DataTable dt) {
List<T> data = new List<T>();
foreach (DataRow row in dt.Rows) {
T item = GetItem<T>(row);
data.Add(item);
}
return data;
}
private static T GetItem<T>(DataRow dr) {
Type temp = typeof(T);
T obj = Activator.CreateInstance<T>();

foreach (DataColumn column in dr.Table.Columns) {
foreach (PropertyInfo pro in temp.GetProperties()) {
if (pro.Name == column.ColumnName){
var propertyValue = dr[column.ColumnName];
//pro.SetValue(obj, dr[column.ColumnName], null);
if (!pro.PropertyType.IsGenericType) {
pro.SetValue(obj, propertyValue == DBNull.Value ? null : Convert.ChangeType(propertyValue, pro.PropertyType));
} else {
Type genericTypeDefinition = pro.PropertyType.GetGenericTypeDefinition();
if (genericTypeDefinition == typeof(Nullable<>)) {
pro.SetValue(obj, propertyValue==DBNull.Value ? null : Convert.ChangeType(propertyValue, Nullable.GetUnderlyingType(pro.PropertyType)));
}
}
}
else
continue;
}
}
return obj;
}

public DataTable GetDataTable() {
DataTable dt = new DataTable("Student");
dt.Columns.Add("StudentId", typeof(Int32));
dt.Columns.Add("StudentName", typeof(string));
dt.Columns.Add("Address", typeof(string));
dt.Columns.Add("MobileNo", typeof(string));
dt.Columns.Add("Status", typeof(Int32));
//Data
dt.Rows.Add(1, "Manish", "Hyderabad","0000000000");
dt.Rows.Add(2, "Venkat", "Hyderabad", "111111111");
dt.Rows.Add(3, "Namit", "Pune", "1222222222");
dt.Rows.Add(4, "Abhinav", "Bhagalpur", "3333333333",1);

return dt;
}

public DataSet GetDatasets() {

DataSet dsClass = new DataSet();
//创建班级表
DataTable dtClass = new DataTable("Class");
//创建班级名称列
DataColumn dcClassName = new DataColumn("ClassName",typeof(string));
dcClassName.MaxLength = 50;
//创建年级ID列
DataColumn dcGradeID = new DataColumn("GradeID",typeof(int));
//将定义好列添加到班级表中
dtClass.Columns.Add(dcClassName);
dtClass.Columns.Add(dcGradeID);
//创建一个新的数据行
DataRow drClass = dtClass.NewRow();
drClass["className"] = "1";
drClass["gradeID"] = 1;
//将新的数据行插入班级表中
dtClass.Rows.Add(drClass);
//将班级表添加到DataSet中
dsClass.Tables.Add(dtClass);
return dsClass;
}

public ActionResult Load() {

var dt = GetDataTable();
List<Student> target = dt.AsEnumerable()
.Select(dataRow => new Student {
StudentName = dataRow.Field<string>("StudentName"),
Status = dataRow.Field<int?>("Status")
}).ToList();

var empList = dt.AsEnumerable().Select(dataRow => new Student {
StudentName = dataRow.Field<string>("StudentName"),
Status = dataRow.Field<int?>("Status")
}).ToList();

List<Student> studentList = new List<Student>();

for (int i = 0; i < dt.Rows.Count; i++) {
Student student = new Student();
student.StudentId = Convert.ToInt32(dt.Rows[i]["StudentId"]);
student.StudentName = dt.Rows[i]["StudentName"].ToString();
student.Address = dt.Rows[i]["Address"].ToString();
student.MobileNo = dt.Rows[i]["MobileNo"].ToString();
studentList.Add(student);
}

//studentList = (from DataRow dr in dt.Rows
// select new Student() {
// StudentId = Convert.ToInt32(dr["StudentId"]),
// StudentName = dr["StudentName"].ToString(),
// Address = dr["Address"].ToString(),
// MobileNo = dr["MobileNo"].ToString()
// }).ToList();

var result2 = BaseResponseEntity.Success(new { StudentList1 = GetDatasets(),StudentList = GetDatasets().Tables[0] });
return JsonContentResult(result2);

var result1 = BaseResponseEntity.Success(new { StudentList = dt });
return JsonContentResult(result1);

studentList = ConvertDataTableToList<Student>(dt);
var result = BaseResponseEntity.Success(new { StudentList=studentList});
//return JsonContentResult(studentList);
return JsonContentResult(result);
}

public ActionResult Index() {
return View();
}

public ActionResult About() {
ViewBag.Message = "Your application description page.";

return View();
}

public ActionResult Contact() {
ViewBag.Message = "Your contact page.";

return View();
}
}

http://www.c-sharpcorner.com/UploadFile/ee01e6/different-way-to-convert-datatable-to-list/

http://www.cnblogs.com/envelope/archive/2010/04/20/1716343.html

https://www.cnblogs.com/sky-net/p/5956538.html

Dataset,DataTable的更多相关文章

  1. C#使用DataSet Datatable更新数据库的三种实现方法

    本文以实例形式讲述了使用DataSet Datatable更新数据库的三种实现方法,包括CommandBuilder 方法.DataAdapter 更新数据源以及使用sql语句更新.分享给大家供大家参 ...

  2. 手写DataSet,DataTable

    一:DataSet DataSet ds = new DataSet();//创建DataSet DataTable dt = new DataTable();//创建一个DataTalbe dt.C ...

  3. DataSet DataTable操作

    DataSet ds = new DataSet();            DataTable dt = new DataTable("OrderList");          ...

  4. [Json] C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json (转载)

    点击下载 ConvertJson.rar 本类实现了 C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json|等功能大家先预 ...

  5. DataSet,DataTable,DataColumn,DataRow的常用操作

    DataSet 这个玩意没什么好讲的,当ado.net查询出有多张表集合的数据返回时,这个时候就会使用到DataSet. DataTable //表之间直接赋值 dt2=dt1; 两者指向同一内存空间 ...

  6. DataSet,DataTable排序(转载)

    DataSet,DataTable排序   关于对已经绑定的DataSet的排序的问题: DataSet ds=new DataSet();DataView dv=new DataView();dv. ...

  7. DataSet,DataTable与DataRow的复制方法

    DataSet 对象是支持 ADO.NET的断开式.分布式数据方案的核心对象 ,用途非常广泛.我们很多时候需要使用其中的数据,比如取得一个DataTable的数据或者复制另一个DataTabe中的数据 ...

  8. XML 与 DataSet/DataTable 互相转换实例(C#)——转载

    // <summary>      /// XML形式的字符串.XML文江转换成DataSet.DataTable格式      /// </summary>      pub ...

  9. 使用DataSet Datatable 更新数据库的三种方式

    1:自动生成命令的条件 CommandBuilder 方法a)动态指定 SelectCommand 属性b)利用 CommandBuilder 对象自动生成 DataAdapter 的 DeleteC ...

  10. DataSet - DataTable - DataRow 读取 xml 文件 + 搜索

    DataSet ds = XmlHelper.GetDataSetByXml(AppDomain.CurrentDomain.BaseDirectory + "/Config/ConfigN ...

随机推荐

  1. out, ref 和 params 的区别和用法

    1. out 参数. 如果你在一个方法中,返回多个相同类型的值,可以考虑返回一个数组. 但是,如果返回多个不同类型的值,返回数组就不可取.这个时候可以考虑使用out参数. out参数就侧重于在一个方法 ...

  2. ~ # himm -sh: himm: not found的解决方法

    ls /bin发现没有himm 海思根文件默认没有把himm工具集成在bin里,但是在sdk中 /home/swann/Hi3516CV300_SDK_V1.0.3.0/osdrv/tools/boa ...

  3. touch-action 解决移动端300ms延迟问题

    CSS3 新属性, touch-action: manipulation; 可以有效的解决移动端300ms延迟的问题 移动端300ms延迟问题一直都是h5APP的痛点, 有很多库或者方法都可以解决, ...

  4. webpack 3 升级到 webpack 4,遇到问题解决

    报错:Error: Chunk.entrypoints: Use Chunks.groupsIterable and filter by instanceof Entrypoint instead 解 ...

  5. hadoop 2.7.1安装和配置

    一.安装环境 硬件:虚拟机 操作系统:Centos 6.4 64位 IP:192.168.241.128主机名:admin安装用户:root 二.安装JDK 安装JDK1.7或者以上版本.这里安装jd ...

  6. nusaop 关于webService

    用PHP和NuSoap来建立SOAP服务器非常容易.基本上,你只要写出你想要暴露给你的Web services的函数,然后用NuSoap去注册它们就可以了.OK,另外还需要两步才能完成PHP SOAP ...

  7. 基于redis 3.x搭建集群环境

    由于我团队开发的在线坐席系统,即将面对线上每周3000W的下行投放客户,产品的咨询量可能会很大,基于前期,200W的投放时,前10分钟,大概800问题量,平均一个客户大概8个问题,也就是说每分钟10个 ...

  8. 代码编辑器之EditPlus

    引用及下载地址:http://www.iplaysoft.com/editplus.html EditPlus是一套功能非常强大的文字编辑器,拥有无限制的Undo/Redo(撤销).英文拼字检查.自动 ...

  9. win7 上运行 php7 +

    win7 安装 php7+ 很简单, 这里不赘述 如何在phpstudy 添加   php7   百度也很容易找到. 但是在 php 7 运行的时候总是报0x0000007  或者 缺少 .dll 文 ...

  10. 4:WPF中查看PDF文件

    引用连接:https://www.cnblogs.com/yang-fei/p/4885570.html 在Github上看到一个非常好的WPF中承载PDF文件的类库. https://github. ...