新增欄位與約束
DataColumn col = dt.Columns.Add("newColumn", typeof(int));
col.AllowDBNull = false; col.MaxLength = 4; col.Unique = true;
dt.PrimaryKey = new DataColumn[] { dt.Columns["ID"] };
// 複合主鍵
dt.PrimaryKey = new DataColumn[] { dt.Columns["OrderID"], dt.Columns["ProductID"] };
外鍵約束
ForeignKeyConstraint fk = new ForeignKeyConstraint(
ds.Tables["Customers"].Columns["CustomerID"],
ds.Tables["Orders"].Columns["CustomerID"]);
ds.Tables["Orders"].Constraints.Add(fk);
修改 DataRow
DataRow dr = ds.Tables["Customer"].Rows.Find("ANTON");
if (dr != null) {
dr.BeginEdit();
dr["CompanyName"] = "newValue";
dr["ContactName"] = "newValue2";
dr.EndEdit();
}
BeginEdit/EndEdit 緩衝修改,CancelEdit 可取消
Find 需主鍵已設定
判斷 Null 與指派 DBNull
DataRow dr = ds.Tables["Customers"].Rows.Find("aaa");
if (dr.IsNull("ContactName")) { /* ... */ }
else dr["ContactName"] = DBNull.Value;