我需要帮助为每个数据库表行创建一个新的WPF数据网格

时间:2016-09-28 15:21:05

标签: c# wpf datagrid

如何让这个查询为数据库表中的每一行填充一个新的wpf数据网格?我在过去的3天里一直在研究这个问题,但我找不到与此类似的例子。任何建议都会有帮助。 image显示了我目前正在做的事情。

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();

1 个答案:

答案 0 :(得分: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注入。

要回答您的问题,您走的是正确的道路。您需要使用代码创建一个新控件,并告诉表单您想要它的位置。现在你正试图创建新的网格而不告诉程序任何关于它的去向。