如何在C#中创建DataTable以及如何添加行?
如何在C#中创建一个DataTable?如何在C#中创建DataTable以及如何添加行?
我不喜欢这样的:
DataTable dt = new DataTable();
dt.clear();
dt.Columns.Add("Name");
dt.Columns.Add("Marks");
如何查看数据表的结构?
现在我想添加拉维为Name
和为Marks
。我怎样才能做到这一点?
要添加行:
DataRow row = dt.NewRow();
row["Name"] = "Ravi";
row["Marks"] = 500;
dt.Rows.Add(row);
要看到结构:
Table.Columns
你忘了添加dt.AddRow(row);在代码的最后。 – Canavar 2009-06-25 07:41:07
你必须为数据行添加到您的数据表这一点。
// 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);
下面的代码:
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类没有AddRow方法。你必须做dt.Rows.Add(_ravi);而不是 – Salamander2007 2009-06-25 07:43:04
并没有AddRow这样的东西。它是DataTable.Rows.Add() – GenericTypeTea 2009-06-25 07:43:26
如果您使用DataView和CurrentRows以外的其他过滤器,请不要忘记调用dt.AcceptChanges()。 – Salamander2007 2009-06-25 07:44:16
除了其他的答案。
如果你控制DataTable的结构有添加行的快捷方式:
//假设你有一个名为DT dt.Rows.Add(“名”定义为您的实例中的数据表, “分数”);
DataRowCollection.Add()方法有一个重载对象的参数数组。此方法允许您根据需要传递尽可能多的值,但它们的顺序必须与表中定义的列的顺序相同。
因此,虽然这是一种添加行数据的方便方式,但使用起来可能会有风险。如果表结构更改您的代码将失败。
你也可以传递一个对象数组中为好,像这样:
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();
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 i.e 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();
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();
你可以写一个衬垫使用DataRow.Add(params object[] values)而不是四个l INES。
dt.Rows.Add("Ravi", "500");
当你创建新的DataTable
对象,似乎没有需要Clear
DataTable
在第二天发言。您还可以使用DataTable.Columns.AddRange
在语句中添加列。完整的代码将是。
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] { new DataColumn("Name"), new DataColumn("Marks") });
dt.Rows.Add("Ravi", "500");
最简单的方法是创建一个DtaTable截至目前
DataTable table = new DataTable
{
Columns = {
"Name", // typeof(string) is implied
{"Marks", typeof(int)}
},
TableName = "MarksTable" //optional
};
table.Rows.Add("ravi", 500);
问题1:如何创建C#的DataTable?
答1:
DataTable dt = new DataTable(); // DataTable created
// Add columns in your DataTable
dt.Columns.Add("Name");
dt.Columns.Add("Marks");
注:没有必要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"]);
}
您可以在添加一行行
DataTable table = new DataTable();
table.Columns.Add("Dosage", typeof(int));
table.Columns.Add("Drug", typeof(string));
table.Columns.Add("Patient", typeof(string));
table.Columns.Add("Date", typeof(DateTime));
// Here we add five DataRows.
table.Rows.Add(25, "Indocin", "David", DateTime.Now);
table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);
@可爱。只是一个评论 - 如果你使用的是.NET 3.5,你应该看看LINQ to SQL提供了什么。如果你确实决定走下DataTable/DataSet路线,至少要着眼于创建强类型的DataTable。 – RichardOD 2009-06-25 07:50:27