2010-11-23 102 views
2

我对C#有点新,而且我得到了这个从mssql数据库获取记录的脚本。在那里将密钥转换为对象。c#从对象获取属性

它:

Object obj = result[i]; 

当我启用的声明后,我看到的是对象内部的数据线断点。现在我需要访问数据的属性,但因为林有点新的C#我不知道如何做到这一点。

让说的属性称为:命名 我做了一个新的类我自己也与属性名称。

当我试图拿到钥匙的名字我的对象有:

myObject.Name = (string) obj.Name; 

的IDE已经给出了一个错误,在obj的心不是可用的属性。

如何访问该对象的名称属性以将其获取到我自己的对象?

谢谢!

+0

结果[i]结果是什么?你说你已经从数据库中加载了一条记录,但是它以什么格式返回? – 2010-11-23 15:24:20

回答

1

所以result[i]是你的班级的一个实例(为方便起见,我会打电话给Foo)?然后,你可以说

Foo obj = result[i]; 
myObject.Name = obj.Name; 

Object obj = result[i]; 
myObject.Name = ((Foo)obj).Name; 
0

您需要将您的对象转换为适当的类型。例如。如果你的目标是:

class MyObject 
{ 
    public string Name { get; set; } 
} 

比你需要投它喜欢:

MyObject obj = (MyObject)result[i]; 
0

你试图访问Object类的属性,它有没有属性。你要么必须castobj到您创建的类,具有Name属性,或者(更简单),读取数据库时,直接读入到您的类的实例之一,是这样的:

MyClass obj = result[i]

0

哪些数据存在于result[i]?它只是来自数据库记录中字段的字符串吗? (也就是result a DataRow?)就目前而言,你只是把它放在一个不太了解它的Object之内。基本上,你在“装箱”它并从编译器中删除对象数据的知识。

如果result[i]只是一个字符串,你可以试试:

myObject.Name = System.Convert.ToString(result[i]); 

现在,这是相当初学,有在这里做其他考虑。如果result[i]永远是null那么这将抛出一个异常,等等。但是,当你正在学习这应该得到你正在寻找的数据。