标签: datatable

DataTable到JSON

我最近需要将数据表序列化为JSON.我在哪里我们仍然在.Net 2.0,所以我不能在.Net 3.5中使用JSON序列化器.我想这一定是有人做过,所以我去网上找,并发现了一个数量不同 选项.其中一些依赖于一个额外的库,我很难在这里推进.其他人需要先转换List<Dictionary<>>,这似乎有点尴尬和不必要.另一个处理所有值,如字符串.出于某种原因,我无法真正落后于他们,所以我决定推出自己的,我发布在下面.

正如您从阅读//TODO评论中看到的那样,它在一些地方是不完整的.这段代码已经在生产中,所以它在基本意义上"起作用".它不完整的地方是我们知道我们的生产数据当前不会命中它的地方(数据库中没有时间跨度或字节数组).我在这里发帖的原因是我觉得这可能会更好一些,我希望能帮助完成和改进这段代码.欢迎任何投入.

请注意,此功能内置于.Net 3.5及更高版本中,因此今天使用此代码的唯一原因是,您仍然只能使用.Net 2.0.即便如此,JSON.Net已成为此类事物的goto库.

public static class JSONHelper
{
    public static string FromDataTable(DataTable dt)
    {
        string rowDelimiter = "";

        StringBuilder result = new StringBuilder("[");
        foreach (DataRow row in dt.Rows)
        {
            result.Append(rowDelimiter);
            result.Append(FromDataRow(row));
            rowDelimiter = ",";
        }
        result.Append("]");

        return result.ToString();
    }

    public static string FromDataRow(DataRow row)
    {
        DataColumnCollection cols = row.Table.Columns;
        string colDelimiter = "";

        StringBuilder result = new StringBuilder("{");       
        for (int i = 0; i < …
Run Code Online (Sandbox Code Playgroud)

.net c# datatable json .net-2.0

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

如何将复选框控件添加到数据表?

如何在数据表中添加复选框并将其绑定到数据网格?

DataTable ColumnList = new DataTable();
ColumnList.Columns.Add("Column Fields");

int j = 1, i = 0;
CheckBox colCheckbox = new CheckBox();
foreach (Columns col in ColumnNames)
{
    colCheckbox.Name = col.ColumnName;       
    ColumnList.Rows.Add(colCheckbox); // This is getting displayed as System.Windows.Forms.CheckBox,CheckState=0
}
Run Code Online (Sandbox Code Playgroud)

请帮忙.

.net c# datatable

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

循环访问DataTable

好.我有一个包含多列和多行的DataTable.

我想动态地遍历DataTable,输出应该如下所示,不包括大括号:

Name (DataColumn)
Tom  (DataRow)
Peter (DataRow)

Surname (DataColumn)
Smith (DataRow)
Brown (DataRow)

foreach (DataColumn col in rightsTable.Columns)
{
     foreach (DataRow row in rightsTable.Rows)
     {
          //output              
     }
} 
Run Code Online (Sandbox Code Playgroud)

我输入了它,发现这不起作用.有人可以建议更好的方法吗?

c# datatable dataset

19
推荐指数
3
解决办法
11万
查看次数

将值添加到特定DataTable单元格

我想知道是否可以将值添加到特定的DataTable单元格?

假设我有一个现有的dataTable,并且我添加了一个新列,如何在不覆盖现有列的行的情况下添加到新列的行?

据我所知,没有一种方法可以添加到特定的细胞(除非我错了).

  dt.Rows.Add(a, b, c, d)
Run Code Online (Sandbox Code Playgroud)

其中a,b,c和d是字符串值.那么如果我只想添加到d列呢?

任何帮助,将不胜感激.

c# datatable datagrid datagridview

19
推荐指数
2
解决办法
11万
查看次数

选择数据表的某些列

我有一个数据表,想知道我是否可以选择某些列并在表格上输入数据.列列出如下

| col1 | col2 | col3 | col4 | col5 | col6 | col7 | col8 | col9 | col10 | col11 |

我想选择列col1,col2 col6,col7,col3.并在数据表中的行的网格视图中显示数据..当前我正在使用的代码在下面并且onmly选择某些数据.我不是从sql中选择数据,而是从另一个存储在数据表中的excel中选择数据..但是我也需要另一个区域中的其他列...这个数据被写入一个表中的单词

 for (int i = 1; i < table.Rows.Count; i++)
            {
                for (int j = 0; j < table.Columns.Count; j++)
                {
                    if (j == 0)
                    {
                        val = filteredData.Rows[row][col].ToString();
                    }
                    else
                    {
                        val = filteredData.Rows[row][col].ToString();

                        if (val == "-" || val == "")
                        {
                            val = filteredData.Rows[row][col].ToString();

                        }
                        else
                        {
                            val = Convert.ToString(Math.Round(Convert.ToDouble(filteredData.Rows[row][col]), MidpointRounding.AwayFromZero));

                        } …
Run Code Online (Sandbox Code Playgroud)

c# datatable

19
推荐指数
2
解决办法
10万
查看次数

如何在c#中按两列对DataTable进行排序

我有一个DataTable看起来像下面;

|              ID                    | ItemIndex |   ItemValue
ce895bd9-9a92-44bd-8d79-986f991154a9     1            3
ae7d714e-a457-41a8-8bb4-b5a0471c3d2f     2            2
a774dff3-acc0-4f50-a211-a775e28dcae3     2            1
292bbd50-290b-4511-9e4e-2e74e3ebe273     3            2
ae7d714e-a457-41a8-8bb3-b5a0471c3d22     3            1
Run Code Online (Sandbox Code Playgroud)

我想首先对此表进行排序ItemIndex,然后按排序对表进行排序ItemValue.

我怎样才能做到这一点?

编辑:排序后,我想要我的表如下;

|              ID                    | ItemIndex |   ItemValue
ce895bd9-9a92-44bd-8d79-986f991154a9     1            3
a774dff3-acc0-4f50-a211-a775e28dcae3     2            1
ae7d714e-a457-41a8-8bb4-b5a0471c3d2f     2            2
ae7d714e-a457-41a8-8bb3-b5a0471c3d22     3            1
292bbd50-290b-4511-9e4e-2e74e3ebe273     3            2
Run Code Online (Sandbox Code Playgroud)

c# asp.net sorting datatable

19
推荐指数
4
解决办法
5万
查看次数

如何左外连接c#中的两个DataTable?

我如何保持左外连接(我认为它是左外连接但我不是100%确定)两个数据表具有以下表和条件,同时保留两个表中的所有列?

dtblLeft:

 id   col1   anotherColumn2
 1    1      any2
 2    1      any2
 3    2      any2
 4    3      any2
 5    3      any2
 6    3      any2
 7           any2
Run Code Online (Sandbox Code Playgroud)

dtblRight:

 col1   col2      anotherColumn1
 1      Hi        any1
 2      Bye       any1
 3      Later     any1
 4      Never     any1
Run Code Online (Sandbox Code Playgroud)

dtblJoined:

 id   col1  col2     anotherColumn1     anotherColumn2
 1    1     Hi       any1               any2
 2    1     Hi       any1               any2
 3    2     Bye      any1               any2
 4    3     Later    any1               any2
 5    3     Later    any1               any2
 6    3     Later    any1               any2
 7                                      any2
Run Code Online (Sandbox Code Playgroud)

条件: …

c# linq datatable join

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

设置p:dataTable p:列宽

我正在尝试设置数据表的列宽.我已经看了这个问题的答案如何在PrimeFaces 3.0中的ap:dataTable中设置ap:column的宽度?.

然而,我正在尝试做一些不同的事情.我只希望列与它显示的最宽元素一样宽.我的大部分数据都是文字.

例如,它不应该是这样的

-----------------------------
| This is some text         |
-----------------------------

它看起来应该是这样的

---------------------
| This is some text |
---------------------

如果有多行,则coulmn应该与最宽的元素一样大.

datatable jsf width primefaces

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

如何编辑数据表中的行

我创建了一个数据表.它有3列Product_id,Product_nameProduct_price

    Datatable table= new DataTable("Product");

    table.Columns.Add("Product_id", typeof(int));
    table.Columns.Add("Product_name", typeof(string));
    table.Columns.Add("Product_price", typeof(string));

    table.Rows.Add(1, "abc", "100");
    table.Rows.Add(2, "xyz", "200");
Run Code Online (Sandbox Code Playgroud)

现在我想通过索引找到并更新该行.

比如说

我想将Product_name列的值更改为具有Product_id列值的"cde" :2.

c# datatable

19
推荐指数
4
解决办法
17万
查看次数

如何在数组C#中保存数据表第一列

我有这种数据表:

Name | CategorieID | FullCategorie_ID
----  -------------  ----------------
 A        1             12  
 B        1             13
 C        5             14
 D        3             15
 E        6             16
Run Code Online (Sandbox Code Playgroud)

我想将列'NAME'的值保存在数组中,我使用它来获取行的值.例如,要获取第一行的值,我可以使用以下代码.

var stringArr =datatable1.Rows[0].ItemArray.Select(x => x.ToString()).ToArray();
Run Code Online (Sandbox Code Playgroud)

但我不知道如何获得第一列的所有值.

c# datatable

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

标签 统计

datatable ×10

c# ×9

.net ×2

.net-2.0 ×1

asp.net ×1

datagrid ×1

datagridview ×1

dataset ×1

join ×1

jsf ×1

json ×1

linq ×1

primefaces ×1

sorting ×1

width ×1