MySqlCommand : impossible to read inside a transaction
Posted by: Hubert CANEVET
Date: July 13, 2013 04:18AM

Hello everybody,

Let us suppose I want to get the id of a user, knowing his name, that will be done like that :

conn.Open();

MySqlCommand cmd =
new MySqlCommand("SELECT PKID FROM Users WHERE UserName = '" + username + "'", conn);

MySqlDataReader reader = cmd.ExecuteReader(CommandBehavior.SingleRow);
reader.Read();
string strPkId = reader.GetString(0);
reader.Close();

But in the ProfileProvider that you find on Code Project, this is done in a transaction, so the MySqlCommand receives a third argument, with the transaction.

I presume that worked initially, but now, on Windows XP Home SP3, with MySql installed with mysql-installer-community-5.6.12.0.msi and mysql-connector-net-6.7.4.msi (oh, nevertheless Visual Studio 2005 reports using Connector Net 5.2), that does not work. reader.Read() returns false, and reader.GetString(0) throughs an exception that tells "Invalid attempt to access a field before calling Read()".

Same problem with cmd.ExecuteScalar(), that was used initially.

It works properly if called before opening a transaction, so with only two arguments to MySqlCommand, this is why I ask the question here : I imagine it is possible to read data inside a transaction, what must I modify in the code ?

Options: ReplyQuote


Subject
Written By
Posted
MySqlCommand : impossible to read inside a transaction
July 13, 2013 04:18AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.