我有以下格式的JSON:
[
{"id":"10","name":"User","add":false,"edit":true,"authorize":true,"view":true},
{"id":"11","name":"Group","add":true,"edit":false,"authorize":false,"view":true},
{"id":"12","name":"Permission","add":true,"edit":true,"authorize":true,"view":true}
]
Run Code Online (Sandbox Code Playgroud)
如何将其转换为C#DataTable对象,如下所示?
---------------------------------------------------------------------
ID | Name | Add | Edit | View | Authorize
---------------------------------------------------------------------
10 | User | true | true | true | true
11 | Group | true | true | true | true
12 | Permission| true | true | true | true
Run Code Online (Sandbox Code Playgroud) 我正在使用该Save()方法来插入或更新记录,但我想让它只执行一次数据库命令来执行批量插入和批量更新.我该怎么做呢?
我正在使用Windows窗体DataGridView来显示MyObject对象的通用列表.
首先,我将此集合包装到BindingSourceCollection中,然后:
dataGridView.DataSource = myBindingSource;
Run Code Online (Sandbox Code Playgroud)
我想要做的是允许用户通过单击表示MyObject中具体属性的列标题对列进行排序.
我读过一些文章,我应该在绑定之前进行排序.但是,如果我想实时对列进行排序,那么它就无法帮助我.
问题是,我到底需要做什么,所以我可以看到 DataGridView中的排序箭头,我可以对每一列进行排序?
我是JSON和SQLBulkCopy的新手.我有一个JSON格式的POST数据,我希望使用C#在Microsoft SQL中批量复制/插入.
JSON格式:
{
"URLs": [{
"url_name": "Google",
"url_address": "http://www.google.com/"
},
{
"url_name": "Yahoo",
"url_address": "http://www.yahoo.com/"
},
{
"url_name": "FB",
"url_address": "http://www.fb.com/"
},
{
"url_name": "MegaSearches",
"url_address": "http://www.megasearches.com/"
}]
}
Run Code Online (Sandbox Code Playgroud)
类别:
public class UrlData
{
public List<Url> URLs {get;set;}
}
public class Url
{
public string url_address {get;set;}
public string url_name {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能有效地做到这一点?
给定一个对象列表,我需要将其转换为数据集,其中列表中的每个项目由一行表示,每个属性都是行中的一列.然后将此DataSet传递给Aspose.Cells函数,以便将Excel文档创建为报表.
说我有以下内容:
public class Record
{
public int ID { get; set; }
public bool Status { get; set; }
public string Message { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
给定List记录,如何将其转换为DataSet,如下所示:
ID Status Message
1 true "message"
2 false "message2"
3 true "message3"
...
Run Code Online (Sandbox Code Playgroud)
目前我能想到的唯一一件事如下:
DataSet ds = new DataSet
ds.Tables.Add();
ds.Tables[0].Add("ID", typeof(int));
ds.Tables[0].Add("Status", typeof(bool));
ds.Tables[0].Add("Message", typeof(string));
foreach(Record record in records)
{
ds.Tables[0].Rows.Add(record.ID, record.Status, record.Message);
}
Run Code Online (Sandbox Code Playgroud)
但这种方式让我觉得必须有一个更好的方法,因为至少如果将新属性添加到Record中,那么它们将不会显示在DataSet中......但同时它允许我控制每个属性被添加到行中.
有谁知道更好的方法吗?
我曾经使用下面的代码将数据导出到asp.net mvc中的excel
Response.AppendHeader("content-disposition", "attachment;filename=ExportedHtml.xls");
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/vnd.ms-excel";
this.EnableViewState = false;
Response.Write(ExportDiv.InnerHtml);
Response.End();
Run Code Online (Sandbox Code Playgroud)
当此代码运行时,它会创建一个文件并要求保存位置
我尝试使用NPOI并很好地创建Excel文件,但无法在客户端位置保存文件.
有没有办法让上面的代码适用于asp.net core 2.0或者我可以在客户端机器上以excel格式保存数据的任何其他方式?
我有一个实体列表,其中包含一些字段作为其他实体.
例如.
MyEntity
Int id
ContactEntity Contact -> contactId, Name etc…
AddressEntity Address
Run Code Online (Sandbox Code Playgroud)
所以我List< MyEntity>需要将其转换为数据表.但是从子实体我只想选择一个字段.
是否有可能或者我有其他选择.
UPDATE
当我尝试使用 ivowiblo描述的CopyToDataTable()时,它会给我以下错误
The type 'AnonymousType#1' cannot be used as type parameter 'T' in the generic type or
method 'System.Data.DataTableExtensions.CopyToDataTable<T>(System.Collections.Generic.IEnumerable<T>)'.
There is no implicit reference conversion from 'AnonymousType#1' to 'System.Data.DataRow'.
Run Code Online (Sandbox Code Playgroud) 一个相对简单的问题.我有一个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)
这导致了所需的:具有所有信息的数据网格视图,并且它是可排序的.唯一的问题是在这方面使用视图似乎是错误的.所以我该怎么做?