c# - 表没有主键

标签 c# asp.net mysql

我在使用 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/

相关文章:

javascript - C# - 无法转义 JSON 的撇号

asp.net - Telerik RadGrid 分页 - 重复记录和粘贴按钮

c# - 访问同一页面上另一个 Webcontrol 中的标签

php - mysql使用php安全快速的选择和插入

c# - 将数据保存到 DocumentDb 中的多个集合中

c# - 当DetailsView没有数据时进入插入模式

c# - 如何在 Silverlight 中创建弹出对话框?

mysql - MySql 中的 information_schema 和 Performance_shema

php - MySQL 连接表

c# - NUnit - ExpectedMessage 不同错误