表没有主键

我在使用Find()方法的行中得到以下exception(缺少主键)

“表没有主键。”

我已经重新检查了数据库,并且所有主键列都已正确设置。

我的代码:

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[""]; dt.PrimaryKey = keyColumns;