views:

218

answers:

3

what is wrong with this code?

field="id";
table="MInvMonth";
condition="machine_id=37";
 public static String getConditionedField(String field, String table, String condition)
    try
    {
        if (cmd == null) getConnection();
        cmd.CommandText = "Select " + field + " from " + table + " where " + condition;
        SQLiteDataReader reader = cmd.ExecuteReader();
        if (reader.HasRows==true)
        {
            reader.Read();
            string s = reader[0].ToString(); // return first element
            reader.Close();
            return s;
        }
        reader.Close();
        return null;
    }
    catch (Exception e)
    {
        MessageBox.Show("Caught exception: " + e.Message+"|"+cmd.CommandText);
        return null;
    }

I checked the sql statement, it turns the right value. why can't I read it? the returnvalue is "".

+1  A: 

Are you sure the zero index contains the value you need? Maybe it is another column.

Petar Minchev
A: 

Sometimes the first element is 1 not 0, did you try replacing that?

npinti
A: 

the first time I misstyped the sql staement. now it is good, it must return just the id field. The thing is, that this is a function and with other type of queries, when the returned field type is string, it is working fine.

I tried to debug, and the reader[0].value is empty.

arnoldino
Please update your question to reflect this.
svinto