【问题标题】:How to read columns and rows with C#?如何使用 C# 读取列和行?
【发布时间】:2010-11-20 23:19:10
【问题描述】:

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

我已经走到这一步了:

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

感谢帮助;]

【问题讨论】:

  • 首先,这看起来对SQL Injection attacks 开放-您应该参数化您的查询。第二 - 什么是obj,它来自哪里?
  • 你的问题远不能理解。在任何情况下,请注意将输入连接到您的 SQL 中,这需要 SQL 注入。
  • 您使用的是什么框架或连接器?
  • (3、2、...中的小鲍比桌卡通片)
  • 那么,obj 是什么类型的?

标签: c# mysql rows


【解决方案1】:

这是我在 MySql 中经常使用的标准代码块。请注意,您必须使用可用的 MySql 连接器here

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);
}

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

【讨论】:

    【解决方案2】:

    你也可以使用:

    创建您自己的数据表。当阅读器结束时,您将拥有自定义创建的数据表,并由您自己自定义填充。

    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);
    
    }
    

    【讨论】:

      猜你喜欢
      • 2011-06-08
      • 1970-01-01
      • 1970-01-01
      • 2017-09-30
      • 1970-01-01
      • 2020-03-31
      • 2021-05-26
      • 2015-07-05
      • 1970-01-01
      相关资源
      最近更新 更多