我有一個類如何分配一個類屬性值otehr類的屬性值
public Student student {get;set;}
public Students students {get;set;}
兩個類屬性是相同的.. 我正在從數據庫學生價值觀。我需要分配這些值給學生.. 任何人都可以告訴我如何做到這一點?
我有一個類如何分配一個類屬性值otehr類的屬性值
public Student student {get;set;}
public Students students {get;set;}
兩個類屬性是相同的.. 我正在從數據庫學生價值觀。我需要分配這些值給學生.. 任何人都可以告訴我如何做到這一點?
需要幫助:1)指定類的各種屬性,或2)從數據庫中獲取數據?
這裏有一個總結:
從SQL(或MySQL或Oracle等)填充類的屬性,你需要創建一個SqlConnection,一個SqlCommand和SqlDataReader。使用連接,編寫查詢(命令),以便獲取所需的數據。然後,在while循環中使用讀取器讀取結果集中的值,並填充您的類。
每個類都應該有這樣的字符串,整型,等等,您只需設置變量一樣的屬性:
student.Name = Reader["name"].Equals(DBNull.Value ?? "" : (string)Reader["name"];
如果您需要更多的幫助,發表您的類的定義,也許對一些更多的信息數據庫,你想要填充類(例如表格結構和數據)。
你可以做這樣的事情:http://gist.github.com/405432
它使用反射做一個對象上了深刻的成員逐一克隆:
static void Main(string[] args) {
foreach (var student in Students)
student.CloneFrom(Student);
}
public static void CloneFrom<T>(this T ToObj, T FromObj) {
CloneFrom(ToObj, FromObj, new Dictionary<object, object>());
}
private static FieldInfo[] GetMemberFields(this Type type) {
return type.GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
}
private static void CloneFrom<T>(T ToObj, T FromObj, Dictionary<object, object> Values) {
Values.Add(FromObj, ToObj); //The dictionary is used to prevent infinite recursion
var fields = ToObj.GetType().GetMemberFields();
object value = null;
object othervalue = null;
foreach (var field in fields) {
value = field.GetValue(FromObj);
othervalue = field.GetValue(ToObj);
if (object.Equals(othervalue, value)) continue;
if (value != null && Values.ContainsKey(value)) {
//Prevent recursive calls: objA.fieldB.fieldC = objA
field.SetValue(ToObj, Values[value]);
} else if (othervalue != null && value != null && !field.FieldType.IsPrimitive && !field.FieldType.IsValueType && !(value is string)
&& field.FieldType.GetMemberFields().Any()) {
//Do not overwrite object references
CloneFrom(othervalue, value, Values);
} else {
field.SetValue(ToObj, value);
}
}
}