C#PropertyInfo类获取数据的DbType值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#PropertyInfo类获取数据的DbType值相关的知识,希望对你有一定的参考价值。

IEnumerable<PropertyInfo> properties = GetCreatedProperties<T>(t);
foreach (PropertyInfo p in properties)

string fieldName = GetFieldName(p);
DbType dbType =GetDbType(p.PropertyType.Name);;//这里应该如何实习GetDbType()方法
object value = p.GetValue(t, null);

db.AddInParameter(cmd, fieldName, dbType, value);

DbType 是一个枚举,表示数据库中的字段类型
与c#中的类型没有对应关系,所以需要手动指定
GetDbType 应该是一个映射方法,将你获取到的属性值的类型转换为DbType类型
PS:你自己写一个简单的switch case 就可以了,你能用到的类型应该也不多
p.PropertyType.Name 这句已经获取到属性的类型名称了
参考技术A db.AddInParameter(cmd, fieldName, dbType, value); 方法中其中有一个重载方法是不需要类型的。如果你硬要类型的话,可以使用DbType.Object代替。

在。NET底层它是通过映射关系从变量类型转换到数据库的字段类型的追问

我看了一下,所有重载都要这个DbType,这个具体有什么用我是不太清楚。所以我不知道怎么获取它、、

以上是关于C#PropertyInfo类获取数据的DbType值的主要内容,如果未能解决你的问题,请参考以下文章

C#遍历类的属性 PropertyInfo.Attributes

获取 PropertyInfo 的递归例程

我可以在不使用反射的情况下获取类中字段或属性的 PropertyInfo 吗?

通过反射,获取类的属性

有没有办法从该属性的 getter 中获取 PropertyInfo?

c# 如何通过反射 获取属性值