Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取两列的内容并显示此内容?_C#_Mysql_Mysqldatareader - Fatal编程技术网

C# 如何获取两列的内容并显示此内容?

C# 如何获取两列的内容并显示此内容?,c#,mysql,mysqldatareader,C#,Mysql,Mysqldatareader,我尝试显示“PlayerName”和“HighScore”列。也许在留言盒里?有什么帮助吗?谢谢。首先,在查询中的选择部分调用列名时,不需要在列名中使用单引号(”)。您需要将其与字符值一起使用 public void ShowFirstFiveHighScore() { string query = "SELECT 'key', 'PlayerName', 'HighScore' FROM PlayerPoints ORDER BY HighScore DESC

我尝试显示“PlayerName”和“HighScore”列。也许在留言盒里?有什么帮助吗?谢谢。

首先,在查询中的
选择部分调用列名时,不需要在列名中使用单引号(
)。您需要将其与字符值一起使用

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