/// <summary> /// Binds a DataSource (ArrayList, Hashtable, NameValueCollection) to an IGuiListControl. /// Will also bind any other object that implements IEnumerable and has properties /// named "ItemName" and "ItemValue". /// </summary> /// <param name="control">The control to populate data in.</param> /// <param name="dataSource">The data source object.</param> public static void BindDataToListControl(IGuiListControl control, object dataSource) { control.Clear(); if (dataSource is Hashtable) { Hashtable source = dataSource as Hashtable; foreach (string key in source.Keys) { control[key] = source[key].ToString(); } } else if (dataSource is NameValueCollection) { NameValueCollection source = dataSource as NameValueCollection; foreach (string key in source.Keys) { control[key] = source[key]; } } else if (dataSource is ArrayList) { ArrayList source = dataSource as ArrayList; for (int i = 0; i < source.Count; i++) { control[i.ToString()] = source[i].ToString(); } } else if (dataSource is string[]) { string[] source = dataSource as string[]; for (int i = 0; i < source.Length; i++) { control[i.ToString()] = source[i]; } } else if (dataSource is object[]) { object[] source = dataSource as object[]; for (int i = 0; i < source.Length; i++) { control[i.ToString()] = source[i].ToString(); } } else if (dataSource is IDictionary) { IDictionary dictionary = dataSource as IDictionary; foreach (object key in dictionary.Keys) { control[key.ToString()] = dictionary[key].ToString(); } } else if (dataSource is Scripting.Dictionary) { Scripting.Dictionary dictionary = dataSource as Scripting.Dictionary; Array items = dictionary.Items() as Array; Array keys = dictionary.Keys() as Array; for (int i = 0; i < keys.Length; i++) { control[keys.GetValue(i).ToString()] = items.GetValue(i).ToString(); } } else if (dataSource is IEnumerable) { IEnumerable collection = dataSource as IEnumerable; PropertyInfo pinfoName, pinfoValue; string name, val; foreach (object item in collection) { pinfoName = item.GetType().GetProperty("ItemValue"); pinfoValue = item.GetType().GetProperty("ItemName"); if ((pinfoName != null) && (pinfoValue != null)) { name = pinfoName.GetGetMethod().Invoke(item, null) as String; val = pinfoValue.GetGetMethod().Invoke(item, null) as String; control.Items[val] = name; } else { break; } } } }
public void InsertData(string iTableName, Scripting.Dictionary iParameters) { DBMap dbmap = new DBMap(); dbmap.initMap("dbmap.txt"); Scripting.Dictionary dic2 = new Scripting.Dictionary(); dic2 = replaceKey(dbmap.dbHasTable, iParameters); object[] lKeys = (object[])dic2.Keys(); List<string> list_Columns = new List<string>(); string tmp; for (int i = 0; i < dic2.Count; i++) { tmp = ((string)lKeys[i]).Split('@')[1]; list_Columns.Add(tmp); tmp = null; } Insert(iTableName, list_Columns, dic2); }