【发布时间】:2017-03-06 17:19:27
【问题描述】:
我有一个 C# windows 窗体应用程序,我也在使用数据库。
我有 3 张桌子:Players、Tournaments 和 TournamentsPlayers。
我只会在表格中显示 2 个表格,Tournaments 和 Players 表格。 Tournaments 表有一列是一个复选框,我想在 Players 表中仅显示我选中该框的锦标赛中的玩家。
当应用程序启动时,我有一个检查所有锦标赛的 foreach 语句,所以首先所有玩家都应该显示在 Players 表中,但没有显示任何玩家。
我的代码是:
private void ShowPlayersForSelectedTournaments()
{
string query =
"SELECT a.Name, a.Id FROM Players a,TournamentPlayers b WHERE a.Id=b.TournamentId AND b.TournamentId=@TournamentId";
using (Connection = new SqlConnection(ConnectionString))
using (SqlCommand command = new SqlCommand(query, Connection))
using (SqlDataAdapter adapter = new SqlDataAdapter(command))
{
foreach (DataGridViewRow row in TournamentsTable.Rows)
{
if (row.Cells.Count > 0 && bool.Parse(row.Cells[0].Value.ToString()))
{
command.Parameters.AddWithValue("@TournamentId", row.Cells[1].Value);
DataTable tournamentPlayersList = new DataTable();
adapter.Fill(tournamentPlayersList);
PlayersTable.DataSource = tournamentPlayersList;
break;
}
}
}
}
我尝试了一个简单的选择并且一切正常,但是使用这种 sql 语法似乎不起作用。 我尝试过另一种类似的 mysql 语法,例如:
string query = "SELECT a.Name FROM Players a INNER JOIN TournamentPlayers b ON a.Id=b.TournamentId WHERE b.TournamentId=@TournamentId";
但Players 表中仍然没有显示任何内容。
我做错了什么?我的mysql语法或代码有问题吗?
【问题讨论】:
-
添加适当的数据样本和预期结果
-
players.id = b.tournamentid似乎不对,但您还没有显示您的确切数据库结构。 -
a.ID 是玩家的 id,您要将其与 TournamentID 相关联吗?
标签: c# mysql winforms sqlconnection