如何让这个查询为数据库表中的每一行填充一个新的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();
答案 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注入。
要回答您的问题,您走的是正确的道路。您需要使用代码创建一个新控件,并告诉表单您想要它的位置。现在你正试图创建新的网格而不告诉程序任何关于它的去向。