C#编程中如何改变DataTable里的某一条记录?

在C#编程中,如何修改DataTable中的某一条记录?
我们知道DataTable.Rows.Add(dr)是新增一条记录,DataTable.Rows.Remove(dr);是删除一条记录,那如何修改一条记录呢?望高人们解答。小的在线候着。
DataTable.Rows[0][0] = "";虽然可以直接操控它的值,但是我如何让系统知道我要修改的是哪一条记录啊?

更新表中的数据
DataRow类为了在编辑数据时挂起和恢复数据行的状态提供了3个方法:BeginEdit、EndEdit和CancelEdit方法。当编辑数据时,调用BeginEdit可以挂起任何事件(或异常),使用Items集合指定要修改的数据的列名和新值;使用EndEdit重新恢复任何事件(或异常);使用CancelEdit则可以回滚任何更改和重新激活任何事件或异常。
1. //获取Employees表中的第4行数据
2. DataRow drEmployee = dtEmployees.Rows[3];
3.
4. drEmployee.BeginEdit();
5.
6. drEmployee("EmpName") = "John";
7. drEmployee("Title")="Sales";
8. drEmployee.EndEdit();
没看明白可以查看参考资料

参考资料:http://book.51cto.com/art/200908/148569.htm

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-02-17
找到那条记录,比如是第i行
则DataTable.Rows[i][ColName] = Value
这样就可以更改某条记录了
第2个回答  2011-02-17
举个例子吧:比如你要修改第一行的某列:
dt.Rows[0]["你的列名"]= 新值 就可以了。
第3个回答  2015-09-10
DataTable d = new DataTable();
d.Rows[行下标]["列名称"] = "修改后的值";
第4个回答  2015-08-24
在DataSet中创建DataTable之后,就可以像对数据库中的表那样对DataTable执行操作,如添加、查看、编辑和删除数据,监视错误和事件以及查询数据等。当修改DataTable中的数据时,可以验证更改是否准确,并且确定是否可以通过编程方式接受或拒绝更改。
1.插入新行
在创建DataTable并使用列和约束定义其结构后,即可向表中添加新的数据行。
(1)创建一个新行
若要向DataTable添加一新行,首先要声明一个DataRow类型的变量。当调用NewRow方法时会返回一个新的DataRow对象。然后DataTable根据DataColumnCollection定义的表的结构来创建DataRow对象。
DataRow drNewEmployee = drEmployees.NewRow();

(2)填充新行
向DataTable添加了新行之后,可以使用索引或列名操作新行。
DataRow drNewEmployee = drEmployees.NewRow(); drNewEmployee[0] = 11; drNewEmployee[1]="smith"; drNewEmployee["EmployeeID"] = 11; drNewEmployee["EmpName"] = "Smith";

(3)向DataTable追加行
在数据插入到新行后,使用Add方法将该行添加到DataRowCollection中。
dtEmp]oyees.Rows.Add(drNewEmployee);

(4)使用代码来创建、填充和追加行
也可以通过将一个Object类型的数组传递给Add方法来创建一个新行。
dtEmployees。Rows.Add(New object(){11,"smith"})

该方法在表中创建新行,并设置其列值为对象数组中的值。
注意:数组中的值根据它们在表中出现的顺序与列匹配。
2.更新表中的数据
DataRow类为了在编辑数据时挂起和恢复数据行的状态提供了3个方法:BeginEdit、EndEdit和CancelEdit方法。当编辑数据时,调用BeginEdit可以挂起任何事件(或异常),使用Items集合指定要修改的数据的列名和新值;使用EndEdit重新恢复任何事件(或异常);使用CancelEdit则可以回滚任何更改和重新激活任何事件或异常。
【实例10-2】 修改表中的数据。
下面演示了如何使用BeginEdit方法、Items集合和EndEdit方法。
//获取Employees表中的第4行数据 DataRow drEmployee = dtEmployees.Rows[3]; drEmployee.BeginEdit(); drEmployee("EmpName") = "John"; drEmployee("Title")="Sales"; drEmployee.EndEdit();

3.删除行
可以使用两种方法从DataTable对象中删除DataRow对象:DataRowCollection对象的Remove方法和DataRow对象的Delete方法。Remove方法从DataRowCollection中删除DataRow;而Delete方法只对删除的行做标记,通常用于无连接环境中的数据。
(1)Remove方法
如下面的示例代码所示,DataRowCollection的Remove方法把DataRow当作一个参数并从集合中删除它。
DataRow drEmployee = dtEmployees. Rows(3); dtEmployees.Rows.Remove(drEmployee);

(2)Delete方法
下面的示例代码说明了如何调用DataRow的Delete方法将RowState属性值更改为Deleted。
drEmployee Delete();

4.实例分析
制作一个可以向学生成绩数据集中添加数据和删除数据的窗口,在窗体中创建一个新的数据集Ds_Students,并创建一个表Dt_studentList
"添加"按钮代码如下:
private void button1_Click(object sender, System.EventArgs e) { //添加一新行 DataRow dr = Dt_studentlist.NewRow(); //向行的列中添加数据 dr[0] = t_xh.Text; dr[1] = t_xm.Text; dr[2] = t_bj.Text; dr[3] = t_kc.Text; dr[4] = t_lx.Text; dr[5] = int.Parse(t_cj.Text); dr[6] = int.Parse(t_xh.Text); //将新的行添加到DataSet中 Dt_studentlist.Rows.Add(dr); }

"删除"按钮代码如下:
private void button2_Click(object sender, System.EventArgs e) { //获取DataGridView上所选要删除行的行号 int index = dataGridView1.SelectedRows[0].Index; //找到用户选定的行 DataRow dr = Dt_studentlist.Rows[index]; //删除该行 dr.Delete(); }

【提示】在DataSet中修改数据,不等于在SQL Server数据库中修改数据。在DataSet中修改数据,相当于在本地内存中的数据库修改数据,与SQL Server数据库无关,只有通过SqlDataAdapter将在DataSet中修改的数据更新回SQL Server数据库,服务器中的数据才有效。

C#编程中如何改变DataTable里的某一条记录?
DataRow类为了在编辑数据时挂起和恢复数据行的状态提供了3个方法:BeginEdit、EndEdit和CancelEdit方法。当编辑数据时,调用BeginEdit可以挂起任何事件(或异常),使用Items集合指定要修改的数据的列名和新值;使用EndEdit重新恢复任何事件(或异常);使用CancelEdit则可以回滚任何更改和重新激活任何事件或异常。

c#如何修改DataTable里面的特定列的数据类型
if (dt.Rows.Count > 0){ \/\/新表 DataTable newDt = new DataTable();List<string> listColums = new List<string>();\/\/复制表结够 newDt = dt.Clone();(此处空一行)\/\/新表中的列数据类型为Decmail的改为string foreach (DataColumn col in newDt.Columns){ listColums.Add(col.Co...

c#获取datatable中的某列数据并改变
for(int i=0;i<dataset.tables[0].count;i++)\/\/dataset你应该知道是什么,不是datatable { string times=dataset.table[0].rows[i][0].tostring()+":"+dataset.tables[0].rows[i][1].tostring();\/\/这里写输出times或者你可以装载到list中 } ...

怎么修改datatable中某一列的值?
dc.DataType = Type.GetType("System.String")C#:DataTable dt = new DataTable();DataColumn dc = dt.Columns(i);\/\/i就是第几列或者用列名也可以 dc.DataType = Type.GetType("System.String");你可以试下,double转string应该是可以的,不知道你为什么要这么做 ...

修改DataTable中某列的数据类型.
\/\/\/ <summary> \/\/\/ 修改数据表DataTable某一列的类型和记录值(正确步骤:1.克隆表结构,2.修改列类型,3.修改记录值,4.返回希望的结果)\/\/\/ <\/summary> \/\/\/ <param name="argDataTable">数据表DataTable<\/param> \/\/\/ <returns>数据表DataTable<\/returns> private DataTable UpdateDataTable...

C# DataTable 中如何设置一个列为某一行数据最小值
DataRow drT = dtT.NewRow(); \/\/列序号可改为列名 float fMin = new float[] { (float)drT[2], (float)drT[3], (float)drT[4] }.Min();

C# 如何把一个datatable某行数据赋值给另一datatable
不需要如些麻烦的一列一列的弄,代码如下:table2=table1.Clone(); \/\/复制源的架构和约束 table2.Clear(); \/\/清除目标的所有数据 table2.ImportRow(table1.Rows[index]); \/\/将table1中索引为index的行复制到table2中 希望对你有帮助,还有疑问请追问或是Hi....

c#中的DataTable如何修改数据类型
DataRow dr=dt.NewRow();dr["ID"]=1; dr["Name"]=A; dr["State"]=1;\/\/把创建的行插入到数据表“Table1”中 dt.Rows.Add(dr);\/\/如上,这样就创建了一个如题所示的数据表的过程。如果你想把bit型转换为char型。只需要候改下插入的列即可。如将状态列改为:DataColumn dcState=new...

C#如何在已经有数据的datatable里添加一个新列,并且将一个数组里的数 ...
假设Dt 是原来的table,然后在事件里面写 dt.Columns.Add("新的列", typeof(string));foreach (DataRow dr in dt.Rows){ dr["新的列"] = "c";} “c”,赋值的时候 你可以用你想要放的数组的值。

怎么清空datatable中的数据
在C#中,如果要删除DataTable中的某一行,大约有以下几种办法:1,使用DataTable.Rows.Remove(DataRow),或者DataTable.Rows.RemoveAt(index);可以直接删除行2,datatable.Rows[i].Delete()。Delete()之后需要datatable.AccepteChanges()方法确认完全删除,因为Delete()只是将相应列的状态标志为删除,还...

相似回答