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