Решение для PostgreSQL:
final PreparedStatement statement = connection.prepareStatement(
"SELECT my_column FROM my_table where search_column = ANY (?)"
);
final String[] values = getValues();
statement.setArray(1, connection.createArrayOf("text", values));
final ResultSet rs = statement.executeQuery();
try {
while(rs.next()) {
// do some...
}
} finally {
rs.close();
}
или
final PreparedStatement statement = connection.prepareStatement(
"SELECT my_column FROM my_table " +
"where search_column IN (SELECT * FROM unnest(?))"
);
final String[] values = getValues();
statement.setArray(1, connection.createArrayOf("text", values));
final ResultSet rs = statement.executeQuery();
try {
while(rs.next()) {
// do some...
}
} finally {
rs.close();
}
Вы можете преобразовать int
обратно в элемент перечисления с простым актом, а затем вызвать ToString()
:
int value = GetValueFromDb();
EnumDisplayStatus enumDisplayStatus = (EnumDisplayStatus)value;
string stringValue = enumDisplayStatus.ToString();
Если вам нужно получить строку "Visible"
без получения экземпляра EnumDisplayStatus
, вы можете сделать это:
int dbValue = GetDBValue();
string stringValue = Enum.GetName(typeof(EnumDisplayStatus), dbValue);
вы можете просто бросить его
int dbValue = 2;
EnumDisplayStatus enumValue = (EnumDisplayStatus)dbValue;
string stringName = enumValue.ToString(); //Visible
ah .. kent избили меня:)
Попробуйте следующее:
string m = Enum.GetName(typeof(MyEnumClass), value);
Используйте это:
string bob = nameof(EnumDisplayStatus.Visible);
DB to C #
EnumDisplayStatus status = (EnumDisplayStatus)int.Parse(GetValueFromDb());
C # в DB
string dbStatus = ((int)status).ToString();
Просто введите int в тип перечисления:
EnumDisplayStatus status = (EnumDisplayStatus) statusFromDatabase;
string statusString = status.ToString();
enum Foo { A = 1, B= 1 }
? – dbkk 5 July 2011 в 07:26