linqtosql实例
Ⅰ 未将对象引用设置到对象的实例。
未将对象引用设置到对象的实例=BUG。如果别人给你一个你未预料到的null值,抛出一个ArgumentNullException以帮助别人定位BUG。如果你预料到会有null值,那么修改你的程序来容许null值以避免昂贵的异常抛出过程。
调用CreateInstance之前检查Assembly.Load(path)的返回值
转换之前检查Assembly.CreateInstance的返回值
调用GetCategories之前检查CreateCategory的返回值
Ⅱ 如何将linq to sql语句得到的结果(多条记录)转换为dataset的对象给个简单的例子
可以对现有的IQueryable 接口进行扩展 ,之后就可以使用这样得调用:DataContext db = new DataContext (); //具体请使用你自己的 DataContext 实现的对象。DataTable dt=new DataTable();var query = from u in db.Users where u.RoleID ==3 select u; //得到 IQueryable 对象 //这样调用dt= query.ToDataTable(db); ...可以这样实现这个扩展://注意这里写成扩展方法的形式,也可以单独调用 /// <summary>
/// 对 System.Data.Linq 的扩展
/// 从给定的Linq To SQL 查询获取 DataTable 对象
/// </summary>
/// <param name="source"></param>
/// <param name="db"></param>
/// <returns></returns>
public static DataTable ToDataTable(this IQueryable source, DataContext db)
{
//将 LinqToSQL查询传递给 GetCommand()以获取DbCommand对象
DbCommand cmd = db.GetCommand(source);
//打开数据库链接,这里可以进一步扩展,比如传递进来自己定义的继承自 DbConnection 的对象
if(db.Connection.State== ConnectionState.Closed)
db.Connection.Open();
//声明 DataTable 对象
DataTable dt = new DataTable();
//调用DataTable 对象的 Load方法 ,从 DbDataReader 对象加载数据。
dt.Load(cmd.ExecuteReader());
//关闭DbConnection 链接
db.Connection.Close(); return dt;
}
}//这里为了简单 返回的是DataTable对象,如果你有多个结果集的查询,可以自己扩展成DataSet 实现。