我只是想尝试将batabase中的内容读取到控制台上,但我总是在conn.Open()行上获得异常。以下是所有代码:
SqlConnectionStringBuilder conn_string = new SqlConnectionStringBuilder();
conn_string.DataSource = "mysql14.000webhost.com"; // Server
conn_string.UserID = "a7709578_codecal";
conn_string.Password = "xxxxx";
conn_string.InitialCatalog = "a7709578_codecal"; // Database name
SqlConnection conn = new SqlConnection(conn_string.ToString());
conn.Open();
SqlCommand cmd = new SqlCommand("Select name FROM Users");
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("{1}, {0}", reader.GetString(0), reader.GetString(1));
}
reader.Close();
conn.Close();
if (Debugger.IsAttached)
{
Console.ReadLine();
}
答案 0 :(得分:1)
您需要手动构建连接字符串或使用MySqlConnectionStringBuilder
。 MySql使用的格式与SQL Server和您正在使用的SqlConnectionStringBuilder
不同。您还需要使用MySQL库,SqlConnection
,SqlCommand
等都是专门为SQL Server构建的。
答案 1 :(得分:1)
对于MySQL
数据库,您使用的是错误的提供程序。您在发布的代码中使用的那些类是SQL Server
。使用MySQL
提供程序相关类
MySqlConnectionStringBuilder conn_string = new MySqlConnectionStringBuilder();
conn_string.Server = "mysql14.000webhost.com";
conn_string.UserID = "a7709578_codecal";
conn_string.Password = "xxxxxxx";
conn_string.Database = "a7709578_codecal";
using (MySqlConnection conn = new MySqlConnection(conn_string.ToString()))
另外要指出的是,您只能从表格中选择一列
new SqlCommand("Select name FROM Users");
而尝试检索两个列值,这是不正确的
Console.WriteLine("{1}, {0}", reader.GetString(0), reader.GetString(1))
答案 2 :(得分:1)
000webhost免费服务器不允许与服务器数据库的外部连接。
您只能使用存储在服务器上的PHP脚本中的数据库。
你可以使用PHP从数据库中获取数据,它会返回。所以我建议你使用来自C#的php,如api。