Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我一生中得到的最糟糕的回答是:-)。也许你首先要明白,你问题中的第一句话和你的实际错误信息所说的不一样。属性的类型为int,数据的类型为double。不合适。您需要转换数据。因为我不知道你想怎么做,我只能把这个小练习留给你。谢谢你,伙计,它很好用。至少有一_C#_Asp.net_.net_Asp.net Mvc - Fatal编程技术网

C# 我一生中得到的最糟糕的回答是:-)。也许你首先要明白,你问题中的第一句话和你的实际错误信息所说的不一样。属性的类型为int,数据的类型为double。不合适。您需要转换数据。因为我不知道你想怎么做,我只能把这个小练习留给你。谢谢你,伙计,它很好用。至少有一

C# 我一生中得到的最糟糕的回答是:-)。也许你首先要明白,你问题中的第一句话和你的实际错误信息所说的不一样。属性的类型为int,数据的类型为double。不合适。您需要转换数据。因为我不知道你想怎么做,我只能把这个小练习留给你。谢谢你,伙计,它很好用。至少有一,c#,asp.net,.net,asp.net-mvc,C#,Asp.net,.net,Asp.net Mvc,我一生中得到的最糟糕的回答是:-)。也许你首先要明白,你问题中的第一句话和你的实际错误信息所说的不一样。属性的类型为int,数据的类型为double。不合适。您需要转换数据。因为我不知道你想怎么做,我只能把这个小练习留给你。谢谢你,伙计,它很好用。至少有一个人正确理解了我的问题。但是有一个问题,为什么在设置期间将其视为double,实际上数据类型仅为int。@user1557020检查来自datatable的值。我想是双倍的。非常感谢,伙计,它工作得很好。至少有一个人正确理解了我的问题。但是有一


我一生中得到的最糟糕的回答是:-)。也许你首先要明白,你问题中的第一句话和你的实际错误信息所说的不一样。属性的类型为int,数据的类型为double。不合适。您需要转换数据。因为我不知道你想怎么做,我只能把这个小练习留给你。谢谢你,伙计,它很好用。至少有一个人正确理解了我的问题。但是有一个问题,为什么在设置期间将其视为double,实际上数据类型仅为int。@user1557020检查来自datatable的值。我想是双倍的。非常感谢,伙计,它工作得很好。至少有一个人正确理解了我的问题。但是有一个问题,为什么在设置期间将其视为double,实际上数据类型仅为int。@user1557020检查来自datatable的值。我想是双倍的。
public class MyObject
{
public int id;
public string name1;
public string name2;
public string name3;
public string name4;
public int id2;

}

/*Converts DataTable To List*/
    public static List<TSource> ToList<TSource>(this DataTable dataTable) where TSource : new()
    {
        var dataList = new List<TSource>();

        const BindingFlags flags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic;
        var objFieldNames = (from PropertyInfo aProp in typeof(TSource).GetProperties(flags)
                             select new { Name = aProp.Name, Type = Nullable.GetUnderlyingType(aProp.PropertyType) ?? aProp.PropertyType }).ToList();
        var dataTblFieldNames = (from DataColumn aHeader in dataTable.Columns
                                 select new { Name = aHeader.ColumnName, Type = aHeader.DataType }).ToList();
        var commonFields = objFieldNames.Intersect(dataTblFieldNames).ToList();

        foreach (DataRow dataRow in dataTable.AsEnumerable().ToList())
        {
            var aTSource = new TSource();
            foreach (var aField in objFieldNames)
            {
                PropertyInfo propertyInfos = aTSource.GetType().GetProperty(aField.Name);
                propertyInfos.SetValue(aTSource, dataRow[aField.Name], null);
            }
            dataList.Add(aTSource);
        }
        return dataList;
    }
if (propertyInfos.PropertyType == typeof(int))
{
    propertyInfos.SetValue(aTSource, Convert.ToInt32(dataRow[aField.Name]), null);
}
Convert.ChangeType(dataRow[aField.Name], propertyInfos.PropertyType)