相关疑难解决方法(0)

在List <T>上对Datagridview数据源进行排序,其中T是匿名的

一个相对简单的问题.我有一个datagridview,它只是显示统计信息.没有编辑/添加/删除行.datagridview绑定到List.我想要实现的是让用户能够对列进行排序.

class Market
{
    public int Location {get;set;}
    public float Value {get;set;}
    //...
}
class City
{
    public String Name {get;set;}
    //...
}

List<Market> _markets;
List<City> _cities;
//Lists are populated.

dataGridView1.DataSource = _markets.Select(market => 
    new { _cities[market.Location].Name, market.Value}).ToList();
Run Code Online (Sandbox Code Playgroud)

正如所料,列不可排序,但显示的信息是您想要的.我的问题是如何根据具有最少复杂和最少代码量的列类型进行DataGridView排序,因为代码将在整个过程中多次使用.

此应用程序用于使用具有视图的数据库.然后这些视图填充DataGridViews.观点仍然存在,因此可能的解决方案可能是:

DataBase.ViewMarketValue temp = new DataBase.ViewMarketValue()

_markets.ForEach(market => temp.AddViewMarketValueRow(_cities[market.Location].Name, market.Value);
dataGridView1.DataSource = temp;
Run Code Online (Sandbox Code Playgroud)

这导致了所需的:具有所有信息的数据网格视图,并且它是可排序的.唯一的问题是在这方面使用视图似乎是错误的.所以我该怎么做?

c# linq sorting datagridview anonymous-types

7
推荐指数
1
解决办法
1万
查看次数

将DataTable转换为通用List?

    public static IList<T> ConvertTo<T>(DataTable table)
    {
        if (table == null)
        {
            return null;
        }

        List<DataRow> rows = new List<DataRow>();

        foreach (DataRow row in table.Rows)
        {
            rows.Add(row);
        }

        return ConvertTo<T>(rows);
    }

    public static T ConvertItem<T>(DataTable table)
    {
        T obj = default(T);
        if (table != null && table.Rows.Count > 0)
        {
            obj = CreateItem<T>(table.Rows[0]);
        }
        return obj;
    }


    public static T CreateItem<T>(DataRow row)
    {
        T obj = default(T);
        if (row != null)
        {
            obj = Activator.CreateInstance<T>();
            Type entityType = typeof(T);
            PropertyInfo[] properties …
Run Code Online (Sandbox Code Playgroud)

.net c# generics datatable

6
推荐指数
1
解决办法
1万
查看次数

将字典绑定到C#中的DataGridView?

我有一个字典项目如下

Dictionary<string, List<StrikePrice>>
Run Code Online (Sandbox Code Playgroud)

哪里

public class StrikePrice
{
    public string Strike { get; private set; }
    public string Price { get; private set; }

    public StrikePrice(string strike, string price)
    {
        Strike = strike;
        Price = price;
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望将这本词典分配到 DataGridView

this.dataGridViewTest.DataSource = listSmiles;
Run Code Online (Sandbox Code Playgroud)

我知道字典不能分配给它,DataSource因为这不是从IList接口派生的.

有什么办法可以将这个字典元素分配给datagrid吗?

c# datagridview winforms

6
推荐指数
1
解决办法
2万
查看次数

将DataGrid绑定到WPF中的通用列表的最佳方法

我试图绑定DataGrid到WPF中的通用列表.

以下代码导致列表中每行数据的空行(即,如果我有5行,则显示5行,但不显示单元格中的任何数据):

List<DataRow>  DataBindingSource = GuestList.Where(row =>
  (row.Field<long>("FK_GROUP_ID") == Int64.Parse(cmbGroup.SelectedValue.ToString())) &&
  (row.Field<long>("FK_AGE_GROUP_ID") != (int)L_Age_Group.Child))
  .ToList();

gvwAddultDetails.ItemsSource = DataBindingSource;
Run Code Online (Sandbox Code Playgroud)

如果我将对象列表转换为a DataTable,它就可以工作(显示数据).例如:

List<DataRow> DataBindingSource = GuestList.Where(row =>
  (row.Field<long>("FK_GROUP_ID") == Int64.Parse(cmbGroup.SelectedValue.ToString())) &&
  (row.Field<long>("FK_AGE_GROUP_ID") != (int)L_Age_Group.Child))
  .ToList();

gvwAdultDetails.ItemsSource = DataBindingSource.CopyToDataTable().DefaultView;
Run Code Online (Sandbox Code Playgroud)

但如果我有List<DataRow>,我怎么把它转换成DataTable

DataGrid在WPF中绑定到"List" 的最佳实践是什么?

c# data-binding wpf

6
推荐指数
1
解决办法
1万
查看次数

大量数据的插入性能下降(SQL Server/C#)

我正在使用电子设备实时数字化波形(每个设备每秒产生大约1000个512字节数组 - 我们有12个设备).我在C#中为这些设备编写了一个客户端,大部分工作正常并且没有性能问题.

但是,该应用程序的一个要求是归档,并且Microsoft SQL Server 2010被强制作为存储机制(在我的控制范围之外).数据库布局非常简单:每台设备每天有一个表("Archive_Dev02_20131015"等).每个表都有一个Id列,一timestamp列,一Data列(varbinary)和20个带有一些元数据的整数列.在Id和上有一个聚集的主键timestamp,以及另一个单独的索引timestamp.我天真的方法是将客户端应用程序中的所有数据排队,然后使用5秒间隔将所有数据插入数据库SqlCommand.

基本机制如下所示:

using (SqlTransaction transaction = connection.BeginTransaction()
{
    //Beginning of the insert sql statement...
    string sql = "USE [DatabaseName]\r\n" +
                 "INSERT INTO [dbo].[Archive_Dev02_20131015]\r\n" + 
                 "(\r\n" +
                 "   [Timestamp], \r\n" +
                 "   [Data], \r\n" +
                 "   [IntField1], \r\n" +
                 "   [...], \r\n" +                         
                 ") \r\n" +
                 "VALUES \r\n" +
                 "(\r\n" +
                 "   @timestamp, \r\n" + 
                 "   @data, \r\n" + …
Run Code Online (Sandbox Code Playgroud)

c# sql-server

5
推荐指数
1
解决办法
8419
查看次数

将匿名类型转换为DataTable

将匿名类型转换为DataTable的最快方法是什么?

更新: 我想从匿名类型获取并填充DataTable.如果反射是必要的,我怎么能用反射来做呢?

c# datatable anonymous-types .net-4.0 asp.net-4.0

3
推荐指数
1
解决办法
8252
查看次数

将linq查询结果转换为数据表C#

我想将linq查询结果转换为datatable,以便我可以将数据表分配给GridView以在asp页面上显示它.

但是我无法将结果转换为datatable,我没有在我的代码中获取CopyToTable()方法.

请告诉我这里做错了什么?

 var gradeData = (from data in oAngieCtxt.prc_ShopInstanceCustomersData(Convert.ToInt32(this.ShopInstanceID), 10000, false)
                     .Where( row => row.RecievedPoints != "n/a" )
                    .GroupBy(row => new { row.Name })
                    .Select(g => new GroupedPoints()
                    {
                        Name = g.Key.Name,
                        TotalPoints = g.Sum(x => Convert.ToDouble(x.RecievedPoints) * (x.Weightage.ToString() == "0.00" ? 1 : Convert.ToDouble(x.Weightage)))
                    })
                     select data).ToList();

 DataTable dt = gradeData --gradeData.CopyToTable()
Run Code Online (Sandbox Code Playgroud)

注意:可以使用对dataextentions dll的引用.

提前致谢

asp.net c#-4.0

3
推荐指数
2
解决办法
4万
查看次数

从复杂类型列表中提取字符串列表

我如何从List<ComplexObject>a 获得List<string>,假设ComplexObject有两个属性:类型为string的prop1和类型为int的prop2.我有兴趣提取一个List<string>(prop1列表).

举个例子,也许它更清楚.

想象一下,你有List<Country>Country是具有Id和Name的复杂对象.我有兴趣从countryList中提取一个名称列表,其中包含所有名称.

我知道我可以这样做:

            List<string> nameList = new List<string>();

            foreach (var country in countryList)
            {
                nameList.Add(country.Name);
            }
Run Code Online (Sandbox Code Playgroud)

...但我想知道是否有更简单快捷的方法从countryList中提取nameList.也许与lambda或其他东西.

并且该字符串列表是否可以轻松转换为DataTable

谢谢.

c#

0
推荐指数
1
解决办法
42
查看次数

如何将模型类对象转换为数据表

我是 c# 新手,我想在 Web API 中将模型类对象转换为 DataTable。

模型类

 public class Employee_Master_Model
    {
        public string UserType { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string MiddleName { get; set; }
        public string Mobile { get; set; }
        public string Phone { get; set; }
        public string Email { get; set; }
        public bool IsActive { get; set; }
        public int EmployeeId { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

控制器:

 public async Task<IActionResult> …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-web-api asp.net-core

-1
推荐指数
1
解决办法
1万
查看次数