我正在构建一个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中,并记录所有错误,以使故障排除更加容易。