如何在c#中创建一个数据表,以及如何添加行?

如何在c#中创建一个数据表?

我是这样做的:

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

我如何看到数据表的结构?

现在我想为Name添加拉维,为Marks添加500。我该怎么做呢?

863552 次浏览

添加一行。

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

看结构:

Table.Columns

为此,您必须向数据表中添加数据箭头。

// 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");

除了其他答案。

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

//假设您有一个数据表,如示例中定义的,名为dt dt.Rows。添加(“名称”、“商标”);< / p >

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();

你可以用我们应该。Add(params object[] values)代替四行来写一个衬套

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#中创建数据表?

回答1:

DataTable dt = new DataTable(); // DataTable created


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

在创建DataTable后,不需要Clear()它。

问题2:如何添加行?

答案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"]);
}

您可以在单行中添加Row

    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);

创建数据表:

DataTable MyTable = new DataTable(); // 1
DataTable MyTableByName = new DataTable("MyTableName"); // 2

向表中添加列:

 MyTable.Columns.Add("Id", typeof(int));
MyTable.Columns.Add("Name", typeof(string));

将行添加到数据表方法1:

DataRow row = MyTable.NewRow();
row["Id"] = 1;
row["Name"] = "John";
MyTable.Rows.Add(row);

将行添加到数据表方法2:

MyTable.Rows.Add(2, "Ivan");

将行添加到数据表方法3(以相同的结构从另一个表中添加行):

MyTable.ImportRow(MyTableByName.Rows[0]);

将行添加到数据表方法4(从另一个表中添加行):

MyTable.Rows.Add(MyTable2.Rows[0]["Id"], MyTable2.Rows[0]["Name"]);

将行添加到数据表方法5(在索引处插入行):

MyTable.Rows.InsertAt(row, 8);