c# reading integer fields from database, returning empty string when reading integer type field
what is wrong with this code?
field="id";
table="MInvMonth";
condition="machine_id=37";
public static String getConditionedField(String field, String table, String con开发者_如何学Godition)
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 "".
Are you sure the zero index contains the value you need? Maybe it is another column.
Sometimes the first element is 1 not 0, did you try replacing that?
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.
精彩评论