dragon012100 2014-02-11 20:52
浏览 52
已采纳

c#中mysql_fetch_assoc的等效命令是什么?

I was very used to php's mysql_fetch_assoc command to acquire a single row prior to OOP making previous querying deprecated. I am now working on a C# project and am trying to learn the law of the land when it comes to querying. I can accomplish a basic query like the following and get a result...but I want to know if there is an easier method? Notice that this occurs when a button is clicked.

private void button1_Click(object sender, EventArgs e)
    {
        string user;
        string userName = Environment.UserName;
        MySqlConnection conn = Connect.Initialize();
        conn.Open();

        string stm = "SELECT user_id from users where login = '" + userName + "'";
        MySqlCommand cmd = new MySqlCommand(stm, conn);
        try
        {

            MySqlDataReader sqlReader = cmd.ExecuteReader();
            while (sqlReader.Read())
            {
                user = sqlReader.GetString(0);
                System.Windows.Forms.MessageBox.Show(user);
            }
        }
        catch { }
    }
}
  • 写回答

1条回答 默认 最新

  • duanmiao6695 2014-02-11 21:01
    关注

    As the term "array" in PHP and an array in C-style languages are something different,
    ie. a key-value-collection with strings as keys isn´t an array,
    there is no fetch_assoc.
    (At least i am pretty sure none of the bultin methods of MySqlDataReader
    and no similar builtin class can generate maps).

    If your code works, why don´t use it?
    Put it in a method which returns a Dictionary collection
    or something similar, if you like this more.

    edit: Don´t write empty catch´es.
    DB connections are something which will go wrong more than one time in million years.

    edit2: Close the connction etc. again if you don´t need it anymore.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?