c# 大家是如何处理根据字符串来获取枚举值的

c# 大家是如何处理根据字符串来获取枚举值的,第1张

DatabaseType d1 = (DatabaseType)EnumParse(typeof(DatabaseType), "MSSQL", true);

DatabaseType d2 = (DatabaseType)EnumParse(typeof(DatabaseType), "0", true);

结果 d1=DatabaseTypeMSSQL;

d2=DatabaseTypeUnDefined;

楼上的。。mysql里有这种类型,是一种字符串类数据列类型

ENUM('value1','value2',) 65535个成员 1或2字节

但是用的比较少。。。

你得写程序自己处理下,大概是下边这样

import javasqlConnection;

import javasqlDriverManager;

import javasqlResultSet;

import javasqlStatement;

public class EnumTesting {

Connection connection;

Statement statement;

public EnumTesting() {

try {

ClassforName("commysqljdbcDriver")newInstance();

connection = DriverManager

getConnection("jdbc:mysql://192168125/testuser=spider&password=spider");

} catch (Exception e) {

Systemerrprintln("Unable to find and load driver");

Systemexit(1);

}

}

public void doWork() {

try {

statement = connectioncreateStatement();

ResultSet rs = statement

executeQuery("SHOW COLUMNS FROM enumtest LIKE 'status'");

rsnext();

String enums = rsgetString("Type");

Systemoutprintln(enums);

int position = 0, count = 0;

String[] availableEnums = new String[10];

while ((position = enumsindexOf("'", position)) > 0) {

int secondPosition = enumsindexOf("'", position + 1);

availableEnums[count++] = enumssubstring(position + 1,

secondPosition);

position = secondPosition + 1;

Systemoutprintln(availableEnums[count - 1]);

}

rsclose();

statementclose();

connectionclose();

} catch (Exception e) {

eprintStackTrace();

}

}

public static void main(String[] args) {

Enum e = new Enum();

edoWork();

}

}

Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型。如果没有显式声明基础类型,则使用 Int32。编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举。 注意:枚举类型的基类型是除 Char 外的任何整型

一、枚举字段企业规模值不正确

1 仔细检查枚举字段定义:查看枚举字段是否定义了正确的可选值,比如是否缺少了允许的企业规模选项。

2 审查代码以确保输入的数据是正确的:确认是否存在任何程序代码,如脚本或程序,可能会将错误的企业规模值存储到数据库中。

3 对枚举字段进行更新:更新枚举字段以包含正确的企业规模值,以确保数据库中的值是正确的。

4 执行数据库升级 *** 作:将旧的枚举字段值替换为新的枚举字段值,以确保现有存储的数据也是正确的。

5 定期审查字段:定期审查数据库中的枚举字段以确保字段定义和存储的值均正确。

eminportent 在前台是个枚举选项,这里想显示汉字“VIP客户”的话,有2种方法:

用case when或if等条件语句。

case when aeminportent='' then “VIP客户” else “NOT VIP客户” end

新建表做连接(推荐),即新建表,保存枚举的所有对应值,用的时候join就可以了

name varchar(50) ,

sex enum('male' , 'female' , 'both' , 'unknow')

name 字段可以插入任意字符串。

sex 字段只允许插入 male , female , both , unknow 中的其中之一,不在范围内的值会报错。

enum 相比较 varchar 就更加规范些,你在程序中限定也一样可以做到。

以上就是关于c# 大家是如何处理根据字符串来获取枚举值的全部的内容,包括:c# 大家是如何处理根据字符串来获取枚举值的、java resultset 获取枚举型数据、枚举类型映射到数据库中以什么存在等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9332669.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存