2016-09-28 74 views
0

如何獲得此查詢來爲我的數據庫表中的每一行填充新的wpf數據網格?過去3天我一直在研究這個問題,但我找不到與此類似的示例。任何建議都會有幫助。 image顯示了我目前正在執行的操作。所有的我需要幫助爲每個數據庫錶行創建一個新的WPF數據網格

public void movieID(BoxOfficeWindow boxWin) 
{ 
    TextBlock movieId = new TextBlock(); 
    TextBlock ratingId = new TextBlock(); 
    DataGrid dataGrid = new DataGrid(); 
    BoxOfficeWindow boxofficewindow = new BoxOfficeWindow(); 
    connections2 conn = new connections2("mediadatabase", "localhost"); 
    string dateTime = DateTime.Now.ToString("yyyyMMdd"); 
    string checkTable = "SELECT DISTINCT movie.movieid, movie.ratingtext FROM movie, schedule WHERE(movie.movieid = schedule.movieid AND schedule.systemdate = " + dateTime + ") ORDER BY movie.movieid, movie.ratingtext; "; 
    DataTable dt = new DataTable(); 
    dt = conn.ReturnDataTableFromDatabase(checkTable, "schedule"); 

    foreach (DataRow dr in dt.Rows) 
    { 
     movieId.Text = dr["movieid"].ToString(); 
     ratingId.Text = dr["ratingtext"].ToString(); 
     boxofficewindow.boxGrid.ShowGridLines = true; 
     dataGrid.AutoGenerateColumns = true; 
     dataGrid.ItemsSource = dt.DefaultView; 
     boxofficewindow.boxGrid.Children.Add(dataGrid); 
     dataGrid = new DataGrid(); 
    } 
    boxofficewindow.Show(); 
    dt = new DataTable(); 

回答

0

首先不這樣做

string checkTable = "SELECT DISTINCT movie.movieid, movie.ratingtext FROM  movie, schedule WHERE(movie.movieid = schedule.movieid AND schedule.systemdate = " + dateTime + ") ORDER BY movie.movieid, movie.ratingtext; "; 

查一查如何使用AddWithValue到您的SQL連接查詢。儘管現在你擁有它的方式是相當安全的,但如果你決定將日期時間更改爲用戶可以輸入數據的東西,那麼你可以使自己適應SQL注入。

要回答你的問題,你是在正確的道路上。您需要使用代碼創建一個新控件,並將窗體告訴您想要的位置。現在你只是試圖創建新的網格而不告訴程序關於它的去向。

+0

謝謝薩姆,我很感激。是的,我想讓datagrid抓住第一行,然後爲下一行創建另一個datagrid,依此類推。我已經嘗試了所有對我有意義的事情,而我只是難住了。當我研究這個時,我很難得到答案,不談論winforms datagridview,這不是我在這裏要做的。 – Ryan

+0

所以你想讓第一張圖片中的每一行都在自己的網格中?每個網格應擁有多少項目? –

+0

只有每個網格中的movieid和評分文字。 – Ryan