如何在C#中创build一个DataTable和如何添加行?

如何在C#中创build一个数据表?

我这样做:

DataTable dt = new DataTable(); dt.clear(); dt.Columns.Add("Name"); dt.Columns.Add("Marks"); 

我如何看到DataTable的结构?

现在我想添加Name 镭射Marks 500 。 我怎样才能做到这一点?

代码如下:

 DataTable dt = new DataTable(); dt.Clear(); dt.Columns.Add("Name"); dt.Columns.Add("Marks"); DataRow _ravi = dt.NewRow(); _ravi["Name"] = "ravi"; _ravi["Marks"] = "500"; dt.Rows.Add(_ravi); 

要查看结构,或者将其改为模式,可以通过执行以下操作将其导出到XML文件。

要仅导出模式/结构,请执行以下操作:

 dt.WriteXMLSchema("dtSchemaOrStructure.xml"); 

另外,您还可以导出数据:

 dt.WriteXML("dtDataxml"); 

你也可以传递一个对象数组,像这样:

 DataTable dt = new DataTable(); dt.Clear(); dt.Columns.Add("Name"); dt.Columns.Add("Marks"); object[] o = { "Ravi", 500 }; dt.Rows.Add(o); 

甚至:

 dt.Rows.Add(new object[] { "Ravi", 500 }); 
 // Create a DataTable and add two Columns to it DataTable dt=new DataTable(); dt.Columns.Add("Name",typeof(string)); dt.Columns.Add("Age",typeof(int)); // Create a DataRow, add Name and Age data, and add to the DataTable DataRow dr=dt.NewRow(); dr["Name"]="Mohammad"; // or dr[0]="Mohammad"; dr["Age"]=24; // or dr[1]=24; dt.Rows.Add(dr); // Create another DataRow, add Name and Age data, and add to the DataTable dr=dt.NewRow(); dr["Name"]="Shahnawaz"; // or dr[0]="Shahnawaz"; dr["Age"]=24; // or dr[1]=24; dt.Rows.Add(dr); // DataBind to your UI control, if necessary (a GridView, in this example) GridView1.DataSource=dt; GridView1.DataBind(); 

添加一行:

 DataRow row = dt.NewRow(); row["Name"] = "Ravi"; row["Marks"] = 500; dt.Rows.Add(row); 

要看结构:

 Table.Columns 
 DataTable dt=new DataTable(); Datacolumn Name = new DataColumn("Name"); Name.DataType= typeoff(string); Name.AllowDBNull=false; //set as null or not the default is true ie null Name.MaxLength=20; //sets the length the default is -1 which is max(no limit) dt.Columns.Add(Name); Datacolumn Age = new DataColumn("Age", typeoff(int));` dt.Columns.Add(Age); DataRow dr=dt.NewRow(); dr["Name"]="Mohammad Adem"; // or dr[0]="Mohammad Adem"; dr["Age"]=33; // or dr[1]=33; dt.add.rows(dr); dr=dt.NewRow(); dr["Name"]="Zahara"; // or dr[0]="Zahara"; dr["Age"]=22; // or dr[1]=22; dt.rows.add(dr); Gv.DataSource=dt; Gv.DataBind(); 

你必须添加数据行到你的数据表。

 // Creates a new DataRow with the same schema as the table. DataRow dr = dt.NewRow(); // Fill the values dr["Name"] = "Name"; dr["Marks"] = "Marks"; // Add the row to the rows collection dt.Rows.Add ( dr ); 

您可以使用DataRow.Add(params object [] values)而不是四行来编写一个class轮

 dt.Rows.Add("Ravi", "500"); 

在创build新的DataTable对象时,在下一个语句中似乎没有必要Clear DataTable 。 您也可以使用DataTable.Columns.AddRange来添加列on语句。 完整的代码将是。

 DataTable dt = new DataTable(); dt.Columns.AddRange(new DataColumn[] { new DataColumn("Name"), new DataColumn("Marks") }); dt.Rows.Add("Ravi", "500"); 
 DataTable dt=new DataTable(); DataColumn Name = new DataColumn("Name",typeof(string)); dt.Columns.Add(Name); DataColumn Age = new DataColumn("Age", typeof(int));` dt.Columns.Add(Age); DataRow dr=dt.NewRow(); dr["Name"]="Kavitha Reddy"; dr["Age"]=24; dt.add.Rows(dr); dr=dt.NewRow(); dr["Name"]="Kiran Reddy"; dr["Age"]=23; dt.Rows.add(dr); Gv.DataSource=dt; Gv.DataBind(); 

最简单的方法是现在创build一个DtaTable

 DataTable table = new DataTable { Columns = { "Name", // typeof(string) is implied {"Marks", typeof(int)} }, TableName = "MarksTable" //optional }; table.Rows.Add("ravi", 500); 

除了其他的答案。

如果你控制DataTable的结构,有一个添加行的快捷方式:

//假设你有一个名为dt dt.Rows.Add(“Name”,“Marks”)的示例中定义的数据表;

DataRowCollection.Add()方法有一个重载对象的参数数组。 此方法允许您根据需要传递尽可能多的值,但是它们的顺序必须与表中定义的列的顺序相同。

所以虽然这是添加行数据的一种方便的方式,但使用起来可能有风险。 如果表结构改变你的代码将失败。

问题1:如何在C#中创build一个DataTable?

答案1:

 DataTable dt = new DataTable(); // DataTable created // Add columns in your DataTable dt.Columns.Add("Name"); dt.Columns.Add("Marks"); 

注意:创build后不需要Clear() DataTable

问题2:如何添加行(s)?

答案2:添加一行:

 dt.Rows.Add("Ravi","500"); 

添加多行:使用ForEach循环

 DataTable dt2 = (DataTable)Session["CartData"]; // This DataTable contains multiple records foreach (DataRow dr in dt2.Rows) { dt.Rows.Add(dr["Name"], dr["Marks"]); }