如何用C#读取列和行?

时间:2010-11-20 23:19:10

标签: c# mysql rows

您好我需要一个代码来读取C#的列和行。

我到目前为止:

obj.MysqlQUERY("SELECT * FROM `players` WHERE name = "+name+";"); // my query function

感激帮助;]

2 个答案:

答案 0 :(得分:5)

这是我与MySql一起使用的标准代码块。请注意,您必须使用可用的here MySql连接器。

string myName = "Foo Bar";
using (MySqlConnection conn = new MySqlConnection("your connection string here"))
{
    using (MySqlCommand cmd = conn.CreateCommand())
    {
        conn.Open();
        cmd.CommandText = @"SELECT * FROM players WHERE name = ?Name;";
        cmd.Parameters.AddWithValue("Name", myName);
        MySqlDataReader Reader = cmd.ExecuteReader();
        if (!Reader.HasRows) return;
        while (Reader.Read())
        {
            Console.WriteLine(GetDBString("column1", Reader);
            Console.WriteLine(GetDBString("column2", Reader);
        }
        Reader.Close();
        conn.Close();
    }
}

private string GetDBString(string SqlFieldName, MySqlDataReader Reader)
{
    return Reader[SqlFieldName].Equals(DBNull.Value) ? String.Empty : Reader.GetString(SqlFieldName);
}

请注意,如果数据库值为null,我将使用方法返回特定值。您可以获得创意并提供各种返回值或合并可空类型等。

答案 1 :(得分:1)

您也可以使用:

创建自己的dataTable。当读者到达终点时,您将获得自定义创建的数据表,并自行填充自定义数据。

DataTable dt = new DataTable();

dt.Columns.Add("Id",typeof(int));

dt.Columns.Add("Name",typeof(string));

dt.Columns.Add("BlaBla",typeof(string));

dt.AcceptChanges();

// Your DB Connection codes.

while(dr.Read())

{
object[] row = new object[]()

{
dr[0].ToString(),// ROW 1 COLUMN 0 

dr[1].ToString(),// ROW 1 COLUMN 1

dr[2].ToString(),// ROW 1 COLUMN 2

}

dt.Rows.Add(row);

}