如何在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"]); }
- 添加一个没有App.Config的DbProviderFactory
- ExecuteScalar,ExecuteReader和ExecuteNonQuery有什么区别?
- 将parameter passing给SQLCommand的最佳方法是什么?
- 无数据存在时无效尝试读取
- C#ADO.NET:nulls和DbNull – 有更有效的语法吗?
- 如何查看entity framework生成的SQL?
- 如何使用SqlConnectionStringBuilder从连接string获取数据库名称
- MetadataException:无法加载指定的元数据资源
- entity frameworkVS LINQ to SQL VS ADO.NET与存储过程?