dragon012100
2014-02-11 20:52
浏览 47

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 { }
    }
}

图片转代码服务由CSDN问答提供 功能建议

我非常习惯于使用php的mysql_fetch_assoc命令在OOP之前获取单行,因为之前的查询已弃用。 我现在正在研究一个C#项目,并且在查询时正试图了解这片土地的规律。 我可以完成如下的基本查询并获得结果......但我想知道是否有更简单的方法? 请注意,单击按钮时会发生这种情况。

  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); 
尝试
 {
 
 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.

    点赞 评论

相关推荐 更多相似问题