我正在构建一个C#程序,该程序将连接到游戏开发人员的API,以便获取和存储数据供以后使用。目前,我正在将业务连接作为第一手业务。

我认为可以执行以下操作:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string connString = "Server=myIP;Database=myDatabase;Uid=myUser;Pwd=myPass;";
            MySqlConnection conn = new MySqlConnection(connString);
            MySqlCommand command = conn.CreateCommand();
            command.CommandText = "SELECT username FROM user WHERE id=1";
            try
            {

                conn.Open();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            MySqlDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {
                Console.WriteLine(reader["text"].ToString());
            }
            Console.ReadLine();
        }

    }
}


我已经允许我的计算机的IP通过编辑cPanel连接到数据库。当我运行程序时,我只会得到一个空白的cmd提示符。这可能是什么?

另外,如果有人对通过某种变量将数据从该API流传输到数据库的过程有任何了解,我很想知道。我是C#的菜鸟。谢谢!

最佳答案

看来您正在尝试访问结果集中不存在的“文本”列。

如果“文本”是表“用户”的一列,则需要更新查询以明确包含它:

SELECT username, text FROM user WHERE id=1


或者,尝试从用户名列中输出值:

Console.WriteLine(reader["username"].ToString());


进一步阅读

http://dev.mysql.com/doc/connector-net/en/connector-net-ref-mysqlclient-mysqlcommandmembers.html#connector-net-ref-mysqlclient-mysqldatareaderitem

注意:我不熟悉MySqlClient,如果这样做没有帮助,请告诉我。

此外,您可以考虑将结果集的阅读内容包装在try / catch中,并记录所有错误,以使故障排除更加容易。

10-06 15:34
查看更多