`
zhushaolong
  • 浏览: 65114 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ds.Tables[0].Rows[0].RowState 状态是怎么相互转换的

 
阅读更多

 DataSet ds=dal.Get();
 此时ds为unchanged   //假设这个时候有两行数据   [0]  [1]
 如果ds.Tables[0].Rows.Add(new DataRow())....此时多了一行为 Added [2]
 
 如果这个时候对数据进行编辑
 比如
 ds.Tables[0].Rows[0]["username"]="zzz";
 ds.Tables[0].Rows[1]["username"]="zzz";
 ds.Tables[0].Rows[2]["username"]="zzz";
 为什么这个时候[0] 和[1] 都变成了Modified,但是[2]还是Added呢?
 
 
 根据下面的分析得出结论:
 
 myTable.NewRow();//Detached 托管的行  不在collection中
 myTable.Rows.Add(myRow);// Added 已经被添加到表中
 myTable.AcceptChanges();//提交上面的更改。。如果不这么做这一步,那么下面再对row修改,已经是添加的行的状态还会是Added
 myRow["FirstName"] = "Scott";//修改Modified
 myRow.Delete();//Deleted
 ======================
           
            DataTable myTable = MakeTable();
            DataRow myRow;

            // Create a new DataRow.
            myRow = myTable.NewRow();
            // Detached row.
            Console.WriteLine("new 了一个新行:myRow = myTable.NewRow(); " + myRow.RowState);

            myTable.Rows.Add(myRow);
            // New row.
            Console.WriteLine("将new的新行添加到collection: myTable.Rows.Add(myRow);" + myRow.RowState);

            myTable.AcceptChanges();
            // Unchanged row.
            Console.WriteLine("提交更改:myTable.AcceptChanges(); " + myRow.RowState);

            myRow["FirstName"] = "Scott";
            // Modified row.
            Console.WriteLine("修改行:myRow[FirstName] = Scott;" + myRow.RowState);

            myRow.Delete();
            // Deleted row.
            Console.WriteLine("删除行: myRow.Delete(); " + myRow.RowState);

分享到:
评论

相关推荐

    DataSet.Tables[].Rows[][]的用法详细解析

    DataSet.Tables[0].Rows[0][1]表示DataSet中第一张表(因为Tables[0]就是第一张表的意思)中第一行(Rows[0][]) 第二列(Rows[][1])的数据。 DataSet.Tables[“tableName”]是指定获取特定的表名。如果DataSet只有一张...

    ajax.dll 实现DropDownList无刷新联动

      var name=ds.Tables[0].Rows[i].CityName;   var id=ds.Tables[0].Rows[i].ProvinceID;   document.all("DropDownList2").options.add(new Option(name,id));   } } } else ...

    电脑公司管理系统

    if (this.ds.Tables[0].Rows[intCounter][0].ToString().Trim() == "商品资料维护") { this.mnu_WareDataManage.Enabled = true; continue; } if (this.ds.Tables[0].Rows[intCounter][0].ToString().Trim() ==...

    C#中灵活使用DataView

    dr["TimeClass_Name"] = ds.Tables[0].Rows[intI]["TimeClass_Name"].ToString(); dr["Chn_NameLocal"] = ds.Tables[0].Rows[intI]["Chn_NameLocal"].ToString(); dr["User_Name"] = ds.Tables[0].Rows[intI][...

    C#按格式导出word(通过word模版标签替换导出)

    pro += ds.Tables[0].Rows.Count.ToString() + "" + ds.Tables[0].Rows[ds.Tables[0].Rows.Count - 1]["PName"].ToString(); } SetBookMarksValue(doc, "D1", pro); ``` 这里对列表数据进行了遍历,并将其格式化后...

    使用information_schema.tables查询数据库和数据表信息1

    4. `table_rows`: 提供了表中大约有多少行数据的估计值,但请注意,这并不是精确的计数。 5. `data_length`: 显示表占用的字节数,包括数据部分。 6. `index_length`: 计算了索引所占的存储空间。 7. `row_format...

    ajax web service

    i < ds1.Tables[0].Rows.Count; i++) { if (ds1.Tables[0].Rows[i]["GCPWF"].ToString() != "") { string _GCPWF = ds1.Tables[0].Rows[i]["GCPWF"].ToString(); string strSQL = "select CONVERT(varchar(2) ...

    GridView和下拉菜单DropDownList结合

    ddl.SelectedValue = ds.Tables[0].Rows[i]["DepId"].ToString(); ddl = (DropDownList)GridView1.Rows[i].FindControl("roleList"); ddl.SelectedValue = ds.Tables[0].Rows[i]["RId"].ToString(); } } ...

    XtraGrid 用法大全

    gridCoulumn.OptionsColumn.ReadOnly = bool.Parse(ds.Tables[0].Rows[i]["ReadOnly"].ToString()); // 添加配置好的列到GridView gridView.Columns.Add(gridCoulumn); } } ``` 此函数首先清除GridView中现有...

    从数据库导出数据到word、excel、.txt[定义].pdf

    Microsoft.Office.Interop.Word.Table table = doc.Tables.Add(doc.Content.End, ds.Tables[i].Rows.Count, ds.Tables[i].Columns.Count, Nothing, Nothing); table.Borders.InsideLineStyle = Microsoft.Office....

    从数据库导出数据到word、excel、.txt.pdf

    worksheet.Cells[i + 1, j + 1] = ds.Tables[0].Rows[i][j]; } } workbook.SaveAs(filename); workbook.Close(false, missing, missing); excelApp.Quit(); Marshal.ReleaseComObject(worksheet); Marshal...

    课程信息查询

    Label8.Text = "查询结果: 共" + ds.Tables[0].Rows.Count + "条记录"; } protected void Button1_Click(object sender, EventArgs e) { string str = ""; string str1 = ""; if (DropDownList1....

    asp.net实现导入导出excel功能详尽

    obj.eid = ds.Tables[0].Rows[i][0].ToString(); obj.name = ds.Tables[0].Rows[i][1].ToString(); obj.cardId = ds.Tables[0].Rows[i][2].ToString(); obj.joinJoyTime = ds.Tables[0].Rows[i][3].ToString(); ...

    dataGridView1中汇总的解决方法dataset 数据汇总

    使用`DS.Tables["tj"].Rows.Add(myrow)`将新创建的汇总行添加到数据表中。 5. **更新DataGridView**: 在完成了数据的汇总处理后,需要更新`dataGridView1`以反映最新的数据变化。可以通过重新绑定数据源或调用`...

    C#.NET用来遍历DataSet的代码

    - `foreach`循环遍历`ds1.Tables[0].Rows`,即遍历`ds1`中的第一张表的所有行。 - 使用`dr[ds1.Tables[0].Columns[1]].ToString()`和`dr[ds1.Tables[0].Columns[0]].ToString()`获取指定列的值,并将其添加到下拉...

    dataSet转json

    json += ds.Tables[i].Columns[k].ColumnName + ":'" + ds.Tables[i].Rows[j][k].ToString() + "'"; if (k != ds.Tables[i].Columns.Count - 1) json += ","; } json += "}"; if (j != ds.Tables[i].Rows....

    Asp.Net从零开始22(Graphics画图表)

    currentdegree += Convert.ToSingle(ds.Tables[0].Rows[i]["总数量"]) / total * 360; } ``` #### 五、添加标题和图例 为了使图表更易于理解,我们可以添加主标题和图例。这可以通过在图表下方添加文字实现: - ...

    NET数据库连接的方法

    DataRow deleteRow = ds.Tables[0].Rows.Find(1); ds.Tables[0].Rows.Remove(deleteRow); ``` 最后,使用`SqlDataAdapter`的`Update`方法将所有更改保存回数据库: ```csharp adapter.Update(ds.Tables["admin"]);...

    数据导出成Excel的两种方法C#编程

    foreach (DataRow row in ds.Tables[0].Rows) { ls_item = ""; for (int j = 0; j < ds.Tables[0].Columns.Count - 1; j++) { ls_item += row[j].ToString(); if (j != ds.Tables[0].Columns.Count - 1) ls_...

Global site tag (gtag.js) - Google Analytics