我在使用 Find() 方法的行中出现以下异常(缺少主键)
"Table doesn't have a primary key."
我重新检查了数据库,所有主键列都设置正确。
我的代码:
DataTable dt = p.GetAllPhotos(int.Parse(Id));
DataTable temp = new DataTable();
temp = dt.Clone();
temp = (DataTable)(Session["currentImage"]);
DataTable dtvalid = new DataTable();
dtvalid = dt.Clone();
DataRow[] drr = new DataRow[1];
drr[0] = dt.Rows.Find((int.Parse(temp.Rows[0]["photoId"].ToString()))+1);
foreach (DataRow dr in drr)
{
dtvalid.ImportRow(dr);
}
dtvalid.AcceptChanges();'
最佳答案
在调用Find
之前,您需要设置DataTable 对象的PrimaryKey 属性DataColumn[] keyColumns = new DataColumn[1];
keyColumns[0] = dt.Columns["<columnname>"];
dt.PrimaryKey = keyColumns;
关于c# - 表没有主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3567552/