C# 如何获取两列的内容并显示此内容?
我尝试显示“PlayerName”和“HighScore”列。也许在留言盒里?有什么帮助吗?谢谢。首先,在查询中的C# 如何获取两列的内容并显示此内容?,c#,mysql,mysqldatareader,C#,Mysql,Mysqldatareader,我尝试显示“PlayerName”和“HighScore”列。也许在留言盒里?有什么帮助吗?谢谢。首先,在查询中的选择部分调用列名时,不需要在列名中使用单引号(”)。您需要将其与字符值一起使用 public void ShowFirstFiveHighScore() { string query = "SELECT 'key', 'PlayerName', 'HighScore' FROM PlayerPoints ORDER BY HighScore DESC
选择部分调用列名时,不需要在列名中使用单引号(”
)。您需要将其与字符值一起使用
public void ShowFirstFiveHighScore()
{
string query = "SELECT 'key', 'PlayerName', 'HighScore' FROM PlayerPoints ORDER BY HighScore DESC LIMIT 5";
if (this.OpenConnection() == true)
{
MySqlCommand cmd = new MySqlCommand(query, _connection);
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
MessageBox.Show(reader.GetString(...);
}
cmd.ExecuteNonQuery();
this.CloseConnection();
}
}
其次,将int
作为一个参数,该参数是基于零的列编号。这意味着您可以使用1
和2
指定列,并根据需要显示它们
键
是MySQL中的一个键。您需要用`
字符引用它然而,最好的解决方案是将名称更改为非重复单词
您的SELECT
语句没有意义。它一点作用也没有
您需要使用来处理MySqlCommand
和MySqlDataReader
(在编写时也是MySqlConnection
)
谢谢@Soner。它起作用了。我如何在一个列表中显示所有五个结果
留言箱?不在五个不同的消息框中
然后,您可以在while语句内部将5
行串联成一个字符串,并在while语句外部显示它。喜欢
在选择
部件中调用列名时,您不需要将'
与列名一起使用。为什么要在关闭连接之前调用ExecuteOnQuery
?这应该可以。或者,按照查询中的要求连接感兴趣的列并显示连接的值。@Ramo您确定select语句返回值吗?请调试您的代码并查看。谢谢@Soner。它起作用了。如何在MessageBox中显示所有五个结果?不在五个不同的消息框中?@Ramo然后您可以将5
行连接为一个字符串,并在while语句后显示。更新了我的答案。
public void ShowFirstFiveHighScore()
{
string query = "SELECT 'key', PlayerName, HighScore FROM PlayerPoints ORDER BY HighScore DESC LIMIT 5";
if (this.OpenConnection() == true)
{
MySqlCommand cmd = new MySqlCommand(query, _connection);
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
MessageBox.Show(string.Format("{0}-{1}"),reader.GetString(1),
reader.GetString(2));
}
cmd.ExecuteNonQuery();
this.CloseConnection();
}
}
string query = "SELECT `key`, PlayerName, HighScore FROM PlayerPoints ORDER BY HighScore DESC LIMIT 5";
using(MySqlCommand cmd = new MySqlCommand(query, _connection))
using(MySqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
MessageBox.Show(string.Format("PlayerName: {0} HighScore: {1}",
reader.GetString(1),
reader.GetString(2)));
}
}
string s = "";
while (reader.Read())
{
s += string.Format("PlayerName: {0} HighScore: {1}\n",
reader.GetString(1),
reader.GetString(2)));
}
MessageBox.Show(s);