private void GetDataAdapterList() { string mstart = _tableAdapterManagerType.FullName; mstart = mstart.Substring(0, mstart.Length - adapterManagerClassSuffix.Length); Type tp; string s; Object o; PropertyInfo pri; Type mtp = TableAdapterManager.GetType(); sqlDataAdapters.Clear(); dataAdapters.Clear(); foreach (DataTable dt in DataSet.Tables) { s = mstart + dt.TableName + adapterClassSuffix; tp = dt.GetType().Assembly.GetType(s, false, true); if (tp == null) { continue; } o = Activator.CreateInstance(tp); dataAdapters[dt.TableName] = o; sqlDataAdapters[dt.TableName] = GetHiddenProperty(o, "Adapter") as DbDataAdapter; pri = mtp.GetProperty(dt.TableName + adapterClassSuffix); if (pri != null) { pri.SetValue(TableAdapterManager, o, null); } } }
public void CreateAdapterForTable(string tablename) { if (String.IsNullOrEmpty(tablename)) { throw new ArgumentException(); } string send = "TableAdapter"; string mend = "TableAdapterManager"; string mstart = _tableAdapterManagerType.FullName; mstart = mstart.Substring(0, mstart.Length - mend.Length); string adaptertypename = mstart + tablename + send; Type tp = _tableAdapterManagerType.Assembly.GetType(adaptertypename, false, true); Object o = Activator.CreateInstance(tp); Type mtp = TableAdapterManager.GetType(); PropertyInfo pri = mtp.GetProperty(tablename + send); if (pri != null) { pri.SetValue(TableAdapterManager, o, null); } dataAdapters[tablename] = o; sqlDataAdapters[tablename] = GetHiddenProperty(o, "Adapter") as DbDataAdapter; }