Dataset,DataTable
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的更多相关文章
- C#使用DataSet Datatable更新数据库的三种实现方法
本文以实例形式讲述了使用DataSet Datatable更新数据库的三种实现方法,包括CommandBuilder 方法.DataAdapter 更新数据源以及使用sql语句更新.分享给大家供大家参 ...
- 手写DataSet,DataTable
一:DataSet DataSet ds = new DataSet();//创建DataSet DataTable dt = new DataTable();//创建一个DataTalbe dt.C ...
- DataSet DataTable操作
DataSet ds = new DataSet(); DataTable dt = new DataTable("OrderList"); ...
- [Json] C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json (转载)
点击下载 ConvertJson.rar 本类实现了 C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json|等功能大家先预 ...
- DataSet,DataTable,DataColumn,DataRow的常用操作
DataSet 这个玩意没什么好讲的,当ado.net查询出有多张表集合的数据返回时,这个时候就会使用到DataSet. DataTable //表之间直接赋值 dt2=dt1; 两者指向同一内存空间 ...
- DataSet,DataTable排序(转载)
DataSet,DataTable排序 关于对已经绑定的DataSet的排序的问题: DataSet ds=new DataSet();DataView dv=new DataView();dv. ...
- DataSet,DataTable与DataRow的复制方法
DataSet 对象是支持 ADO.NET的断开式.分布式数据方案的核心对象 ,用途非常广泛.我们很多时候需要使用其中的数据,比如取得一个DataTable的数据或者复制另一个DataTabe中的数据 ...
- XML 与 DataSet/DataTable 互相转换实例(C#)——转载
// <summary> /// XML形式的字符串.XML文江转换成DataSet.DataTable格式 /// </summary> pub ...
- 使用DataSet Datatable 更新数据库的三种方式
1:自动生成命令的条件 CommandBuilder 方法a)动态指定 SelectCommand 属性b)利用 CommandBuilder 对象自动生成 DataAdapter 的 DeleteC ...
- DataSet - DataTable - DataRow 读取 xml 文件 + 搜索
DataSet ds = XmlHelper.GetDataSetByXml(AppDomain.CurrentDomain.BaseDirectory + "/Config/ConfigN ...
随机推荐
- MySql安装完成后,Navicat连接不上的问题
Navicat连接mysql8.0.1版本出现1251--Client does not support authentication protocol requested by server的解决 ...
- Java Bitset
Bitset创建一种特殊的数组来保存非负整数的值 取值为true和false,初始都是false.Bitset初始化是一个long,65位,增加位数的话只能是64的整数倍. 如果用一个Bitset存储 ...
- KiCad 如何在原理图添加元件时看到 PCB 封装?
KiCad 如何在原理图添加元件时看到 PCB 封装? 这个功能默认是关闭,评估关闭的原因是因为 PCB 封装很大,而且在前期也没必要详细知道 PCB 封装. 但是有时修改可以看到 PCB 封装会方便 ...
- Day 02 编程语言介绍及运行python
一.编程语言介绍 1.1.机器语言:直接用计算机能理解的二进制指令编写程序,直接控制硬件. 1.2.汇编语言:用英文标签取代二进制指令编写程序,本质也是在直接控制硬件. 1.3.高级语言:用人能理解的 ...
- HanLP用户自定义词典源码分析详解
1. 官方文档及参考链接 l 关于词典问题Issue,首先参考:FAQ l 自定义词典其实是基于规则的分词,它的用法参考这个issue l 如果有些数量词.字母词需要分词,可参考:P2P和C2C这种词 ...
- flume-ng-sql-source实现oracle增量数据读取
一.下载编译flume-ng-sql-source 下载地址:https://github.com/keedio/flume-ng-sql-source.git ,安装说明文档编译和拷贝jar包 嫌麻 ...
- PHP中使用sleep函数实现定时任务实例分享
在某些程序中,有一些特殊的功能需要用到定时执行,如果熟悉Linux的朋友肯定会说这不是容易吗,直接来个计划任务crontab不久实现了吗?这的确是可以实现,但必须是提前知道具体的执行时间,然后才能写到 ...
- MySQL 5.7.16 字符串拆分 -> 单列变多行记录(转发)
http://blog.csdn.net/mchdba/article/details/53889803 ----------------------------------------------- ...
- sourceInsight与IAR的同步
编写与编译二者同步:引用http://bbs.ednchina.com/BLOG_ARTICLE_3013475.HTM 1 在IAR中新建一个工程TEST.菜单栏 File->New-> ...
- Delphi调用DLL中的接口
问题描述: 具体问题就是在隐式使用接口变量后,在FreeLibrary执行后,就会出现一个非法访址的错误. 这个错误的原因就是在FreeLibrary后,DLL以的代码均为不可用状态,而在代码执行完整 ...