Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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# 在DataTable中插入新行_C#_Datatable - Fatal编程技术网

C# 在DataTable中插入新行

C# 在DataTable中插入新行,c#,datatable,C#,Datatable,我有一个数据表,里面有员工数据,比如 Staff 1 - Day 1 - Total Staff 1 - Day 2 - Total Staff 1 - Day 3 - Total Staff 2 - Day 1 - Total Staff 2 - Day 2 - Total Staff 2 - Day 3 - Total Staff 2 - Day 4 - Total 我想修改一下,这样结果会是 Staff 1 - Day 1 - Total Staff 1 - Day 2 - Total

我有一个数据表,里面有员工数据,比如

Staff 1 - Day 1 - Total
Staff 1 - Day 2 - Total
Staff 1 - Day 3 - Total
Staff 2 - Day 1 - Total
Staff 2 - Day 2 - Total
Staff 2 - Day 3 - Total
Staff 2 - Day 4 - Total
我想修改一下,这样结果会是

Staff 1 - Day 1 - Total
Staff 1 - Day 2 - Total
Staff 1 - Day 3 - Total
Total   -       - Total Value
Staff 2 - Day 1 - Total
Staff 2 - Day 2 - Total
Staff 2 - Day 3 - Total
Staff 2 - Day 4 - Total
Total   -       - Total Value
最后,我需要在每个员工记录的末尾插入总计行


所以,我的问题是如何将一行插入到数据表中?Tkz..

@William您可以使用datatable的NewRow方法来获取一个空datarow,并使用与datatable相同的模式。您可以填充此数据行,然后使用
.Rows.add(datarow)
.Rows.InsertAt(datarow,Position)
将该行添加到数据表中。以下是存根代码,您可以根据自己的方便进行修改

// get the data table
DataTable dt = ...;

// generate the data you want to insert
DataRow toInsert = dt.NewRow();

// insert in the desired place
dt.Rows.InsertAt(toInsert, index);
//Creating dummy datatable for testing
DataTable dt = new DataTable();
DataColumn dc = new DataColumn("col1", typeof(String));
dt.Columns.Add(dc);

dc = new DataColumn("col2", typeof(String));
dt.Columns.Add(dc);

dc = new DataColumn("col3", typeof(String));
dt.Columns.Add(dc);

dc = new DataColumn("col4", typeof(String));
dt.Columns.Add(dc);

DataRow dr = dt.NewRow();

dr[0] = "coldata1";
dr[1] = "coldata2";
dr[2] = "coldata3";
dr[3] = "coldata4";

dt.Rows.Add(dr);//this will add the row at the end of the datatable
//OR
int yourPosition = 0;
dt.Rows.InsertAt(dr, yourPosition);

你可以这样做,我正在使用

数据表1.10.5

使用此代码:

var versionNo = $.fn.dataTable.version;
alert(versionNo);
这就是我如何使用行在数据表中插入新记录的方法。添加(我的表有10列),其中还可以包括HTML标记元素:

function fncInsertNew() {
            var table = $('#tblRecord').DataTable();

            table.row.add([
                    "Tiger Nixon",
                    "System Architect",
                    "$3,120",
                    "2011/04/25",
                    "Edinburgh",
                    "5421",
                    "Tiger Nixon",
                    "System Architect",
                    "$3,120",
                    "<p>Hello</p>"
            ]).draw();
        }

@虫族:一点也不宽。他只是问如何通过添加DataRow来操作DataTable。我将循环DataTable。因此,每当我插入新行或..时,rows.count将增加。。只有当我写AcceptChanges()时,它才会增加@威廉:
行。插入行后,计数将立即增加
AcceptChanges
将重置所有新行上的
RowState
,这样它们就不会表示它们是新的。谢谢。但是,用省略号代替代码并没有帮助。但我想我知道你要去哪里,我应该能解决的。再次感谢。完美的解决方案,tksI认为OP指的是C#而不是JavaScript——但他们并没有具体说明
function fncInsertNew() {
            var table = $('#tblRecord').DataTable();

            table.row.add([
                    "Tiger Nixon",
                    "System Architect",
                    "$3,120",
                    "2011/04/25",
                    "Edinburgh",
                    "5421",
                    "Tiger Nixon",
                    "System Architect",
                    "$3,120",
                    "<p>Hello</p>"
            ]).draw();
        }
var table = $('#tblRecord').DataTable();

table.rows.add( [ {
        "Tiger Nixon",
        "System Architect",
        "$3,120",
        "2011/04/25",
        "Edinburgh",
        "5421"
    }, {
        "Garrett Winters",
        "Director",
        "$5,300",
        "2011/07/25",
        "Edinburgh",
        "8422"
    }]).draw();
In c# following code insert data into datatable on specified position

DataTable dt = new DataTable();
dt.Columns.Add("SL");
dt.Columns.Add("Amount");

dt.rows.add(1, 1000)
dt.rows.add(2, 2000)

dt.Rows.InsertAt(dt.NewRow(), 3);

var rowPosition = 3;
dt.Rows[rowPosition][dt.Columns.IndexOf("SL")] = 3;
dt.Rows[rowPosition][dt.Columns.IndexOf("Amount")] = 3000;