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 實現。