/// <summary> /// Generate New OSNamelist from Database /// </summary> public OSNameList() { FileInfo databaseDir = new FileInfo(Directory.GetCurrentDirectory() + @"\Database\cmmgui_schema.accdb"); Debug.Print(Directory.GetCurrentDirectory()); string conn_str_format = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Persist Security Info=True"; if (!databaseDir.Exists) { throw new Exception(string.Format("Database file not found in {0}, please check.", databaseDir.FullName)); } string conn_str = string.Format(conn_str_format, databaseDir.FullName); using (OleDbConnection conn = new OleDbConnection(conn_str)) { conn.Open(); string strSQL = @"SELECT DISTINCT [os_name] FROM [tbl_osinfo];"; OleDbCommand cmd = new OleDbCommand(strSQL, conn); DataSet dataset = new DataSet(); OleDbDataAdapter adapter = new OleDbDataAdapter(cmd); adapter.Fill(dataset); foreach (DataRow row in dataset.Tables[0].Rows) { //Populating OSNames string osname = row.ItemArray[0].ToString(); OSNameDetail n = new OSNameDetail(osname); strSQL = @"SELECT DISTINCT [os_version] FROM [tbl_osinfo] WHERE os_name = @os_name;"; OleDbCommand select_cmd = new OleDbCommand(strSQL, conn); select_cmd.Parameters.Add("@os_name", OleDbType.VarChar); select_cmd.Parameters["@os_name"].Value = osname; DataSet dataset1 = new DataSet(); OleDbDataAdapter adapter1 = new OleDbDataAdapter(select_cmd); adapter1.Fill(dataset1); OSVersionList v = new OSVersionList(); foreach (DataRow row1 in dataset1.Tables[0].Rows) { string osversion = row1.ItemArray[0].ToString(); Debug.Print($"Addeding OSVersion: {osversion}"); OSVersionDetail d = new OSVersionDetail(osversion); d.osArchitectureList.Add(new OSArchitecture("32 bit")); d.osArchitectureList.Add(new OSArchitecture("64 bit")); v.Add(d); } n.osVersionList = v; this.Add(n); } } }
public OSNameDetail(string name) { Name = name; osVersionList = new OSVersionList(); }