2

我想编写一个 MySql 语句,它将连接到数据库,从表中选择一列,然后将该数据输出到文本文件到我计算机上的特定位置。我已经在互联网上搜索了几天,似乎没有找到我正在寻找的答案。我对 c#、MySql 和 Visual Studio 还很陌生。我只是想学习如何编写正确的语句并获得所需的结果。任何帮助将不胜感激。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;
using MySql.Data;
using System.Windows.Forms;
using System.IO;

namespace NewPractice
{
    public class Connect
    {
        static void Main()
        {
            string results = @"server=111.111.11.111; userid=anyone;
                password=anypassword; database=anydatabase";    
            MySqlConnection conn = null;

            try
            {
                conn = new MySqlConnection(results);
                conn.Open();
                //Console.WriteLine(
                File.WriteAllLines(
                    @"C:\Documents and Settings\anyone\My Documents\Tests\testoutput.txt", 
                    results.ToArray());
            }
            catch (MySqlException ex)
            {
                Console.WriteLine("Error: (0)", ex.ToString());
            }
            finally
            {
                if (conn != null)
                {
                    conn.Close();
                }
            }
        }      
    }
}
4

3 回答 3

2

您正在将result字符串的内容写入文件,而不是您尝试选择的数据。您需要运行 sql 命令并获取一个SqlDataReader对象以将数据写入文件。

string results = @"server=111.111.11.111; userid=anyone; 
    password=anypassword; database=anydatabase";

MySqlConnection connection = new MySqlConnection(results);
MySqlCommand command = connection.CreateCommand();
MySqlDataReader reader;
command.CommandText = "select * from mycustomers";
connection.Open();
reader = command.ExecuteReader();
using(var sw = new StreamWriter("C:\MyPath\MyFile.txt"))
{
    while (reader.Read())
    {
        var row = (IDataRecord)reader;
        sw.WriteLine(row["myColumn"]);
    }
}
connection.Close();
于 2012-09-25T19:28:21.840 回答
1

如果数据库在您的本地计算机上,您可以使用“select .. into outfile”。http://dev.mysql.com/doc/refman/5.1/en/select-into.html。这将写入服务器上的文件夹,因此如果它是另一台机器并且您无法从那里复制,则它没有用。

于 2012-09-25T18:23:14.980 回答
0

有很多教程可以从 .NET 访问 MySQL。
这是一个:http: //zetcode.com/db/mysqlcsharptutorial/

在任何语言中,都可以通过几个简单的步骤从数据库中读取数据:

1. connect to the database.
2. execute a query
3. iterate through the results of the query
4. close the connection.

您在代码中所做的是连接到数据库,然后尝试将连接信息写入文件。

于 2012-09-25T18:38:16.433 回答