Когда я пытаюсь получить Integer из моего SQLite db, я могу заставить его работать, читая его как строку, а затем запускаю на нем int.Parse
. Правильно ли, я читал что-то об этом связанно с ExeculeScalar
, возможно, отдав null?Получить целое число как строку, чтобы я мог разделить его на целое число?
Вот мой текущий код SendSQLExecScalar()
посылает команду строки и т.д., и возвращает объект
public object SendSQLExecScalar(string C)
{
OpenConnection();
SQLiteCommand SQLCommand = new SQLiteCommand(C, DbConnection);
try
{
object Output = SQLCommand.ExecuteScalar();
CloseConnection();
return Output;
}
catch (Exception X)
{
MessageBox.Show(X.Message);
return null;
}
}
И:
int ID = int.Parse(SendSQLExecScalar(C).ToString());
EDIT:
указано литая не действительный.
public static int GetImageID(string Path)
{
string C = "SELECT ID FROM Images WHERE Path LIKE '" + Path + "' LIMIT 1";
return ConvertFromDBVal<int>(SendSQLExecScalar(C));
}
public static T ConvertFromDBVal<T>(object obj)
{
if (obj == null || obj == DBNull.Value)
{
return default(T);
}
else
{
return (T)obj; //breaks here saying this cast is invalid
}
}
Что именно делает метод SendSQLExecScalar? Не могли бы вы показать это определение? –
Я добавил то, что вы просили – Unhek