public static List<SiteInfo> GetComboBoxSiteInfo(DbConnection myDbCon) { List<SiteInfo> listSiteInfo = null; try { //string queryString = "SELECT NAME FROM MOVIE_CONTENTS GROUP BY NAME"; string queryString = "SELECT NAME FROM MOVIE_SITESTORE GROUP BY NAME"; SqlDataAdapter adapter = new SqlDataAdapter(queryString, myDbCon.getSqlConnection()); DataSet dtsetGroupName = new DataSet(); adapter.Fill(dtsetGroupName, "SiteInfo"); // SiteInfoクラスを使用しないとAnonymousType0の型が戻りになる // その場合にSelectedItemで取得した時に各プロパティの値がとれない // ※ 複数行で取得した場合はforeach内でプロパティ名で値が取得出来る var rows = dtsetGroupName.Tables["SiteInfo"].AsEnumerable(); var query = rows.Select(el => new SiteInfo { name = el["NAME"].ToString() }); // 以下のようにqueryを直接ItemsSourceに設定すると次のようなエラーになる // 'EditItem' is not allowed for this view('EditItem' は、このビューに対して許可されていません) // ※ linq to queryからの取得元がGROUP BYで更新不可な構成のためで、List型へ移してから設定する // dgridGroupItem.ItemsSource = query; SiteInfo allsite = new SiteInfo(); allsite.name = "全て"; listSiteInfo = query.ToList<SiteInfo>(); listSiteInfo.Insert(0, allsite); return listSiteInfo; } catch (Exception exp) { Debug.Write(exp); } return listSiteInfo; }
/// <summary> /// 存在するコンテンツ内のパス名をサイト内のパス群から取得する /// </summary> /// <param name="myDbCon"></param> /// <returns></returns> public static List<SiteInfo> GetSiteStoreInfo(DbConnection myDbCon) { List<SiteInfo> listSiteInfo = new List<SiteInfo>(); string queryString = "SELECT NAME, PATH FROM MOVIE_CONTENTS "; SqlCommand command = new SqlCommand(queryString, myDbCon.getSqlConnection()); myDbCon.openConnection(); SqlDataReader reader = command.ExecuteReader(); do { while (reader.Read()) { SiteInfo siteinfo = new SiteInfo(); siteinfo.name = DbExportCommon.GetDbString(reader, 0); siteinfo.path = DbExportCommon.GetDbString(reader, 1); listSiteInfo.Add(siteinfo); } } while (reader.NextResult()); reader.Close(); myDbCon.closeConnection(); return listSiteInfo; }