[英]How to create a DataTable in C# and how to add rows?
如何在C#中創建一個DataTable?
我確實喜歡這樣:
DataTable dt = new DataTable();
dt.clear();
dt.Columns.Add("Name");
dt.Columns.Add("Marks");
如何查看DataTable的結構?
現在我想為Name
添加ravi ,為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 });
創建數據表:
DataTable MyTable = new DataTable(); // 1
DataTable MyTableByName = new DataTable("MyTableName"); // 2
將列添加到表:
MyTable.Columns.Add("Id", typeof(int));
MyTable.Columns.Add("Name", typeof(string));
將行添加到 DataTable 方法 1:
DataRow row = MyTable.NewRow();
row["Id"] = 1;
row["Name"] = "John";
MyTable.Rows.Add(row);
將行添加到 DataTable 方法 2:
MyTable.Rows.Add(2, "Ivan");
將行添加到 DataTable 方法 3(從另一個表中添加相同結構的行):
MyTable.ImportRow(MyTableByName.Rows[0]);
將行添加到 DataTable 方法 4(從另一個表添加行):
MyTable.Rows.Add(MyTable2.Rows[0]["Id"], MyTable2.Rows[0]["Name"]);
向 DataTable 方法 5 添加行(在索引處插入行):
MyTable.Rows.InsertAt(row, 8);
// 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
您可以在一行中添加 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);
可以編寫使用一個襯里DataRow.Add(params對象[]的值) ,而不是四條線。
dt.Rows.Add("Ravi", "500");
當你創建新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");
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();
最簡單的方法是創建一個 DtaTable 作為現在
DataTable table = new DataTable
{
Columns = {
"Name", // typeof(string) is implied
{"Marks", typeof(int)}
},
TableName = "MarksTable" //optional
};
table.Rows.Add("ravi", 500);
為此,您必須將數據行添加到數據表中。
// 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 dt.Rows.Add("Name", "Marks");
DataRowCollection.Add() 方法有一個重載,它采用對象的 param 數組。 此方法允許您根據需要傳遞任意數量的值,但它們的順序必須與表中定義的列的順序相同。
因此,雖然這是添加行數據的便捷方式,但使用起來可能存在風險。 如果表結構發生變化,您的代碼將失敗。
問題1:如何在C#中創建DataTable?
答案 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"]);
}
創建包含 2 列的數據表:名稱和標記
IList columns = new List() {"名稱", "標記"};
Datatabel dt = new Datatable();
foreach(列中的字符串列)
dtSalesOrder.Columns.Add(列,typeof(字符串));
向數據表中添加數據
dt.Rows.Add("拉維","500");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.