【发布时间】:2017-07-18 20:34:01
【问题描述】:
private void FormRentBook_Load(object sender, EventArgs e)
{
librarydb sorgu = new library();
var book = from booklist in query.k_Books
join isrent in query.k_Bookstatus
on booklist.Book_statusId equals isrent.k_typeid
join booktype in query.k_BookType
on booklist.book_type equals booktype.ID
select new
{
booklist.Book_Name,
booklist.Book_Author,
booktype.Book_type,
booklist.Book_Page,
booklist.ID,
isrent.k_typecomment,
};
bookscreen.DataSource = book.ToList();
bookscreen.Columns[0].HeaderText = "Book Name";
bookscreen.Columns[1].HeaderText = "bookscreen Author";
bookscreen.Columns[2].HeaderText = "Book Type";
bookscreen.Columns[3].HeaderText = "Page Number";
bookscreen.Columns[4].Visible = false;
bookscreen.Columns[5].HeaderText = "Book Status";
bookscreen.Show();
label6.Text = DateTime.Now.ToString();
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
}
public int a;
private void bookscreen_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
label1.Text = bookscreen.CurrentRow.Cells[0].Value.ToString();
label2.Text = bookscreen.CurrentRow.Cells[1].Value.ToString();
a =int.Parse( bookscreen.CurrentRow.Cells[4].Value.ToString());
label3.Text = bookscreen.CurrentRow.Cells[5].Value.ToString();
}
k_Rentedbooks rent = new k_Rentedbooks();
rent.renter_id = Login.k_id;
rent.renter_id = int.Parse(bookscreen.CurrentRow.Cells[4].Value.ToString());
rent.rent_date = DateTime.Now;
DateTime return = DateTime.Now;
int day;
day = Convert.ToInt32(comboBox1.SelectedItem.ToString());
rent.returndate = return.AddDays(day);
db.k_Rentedbooks.Add(rent);
var updatebook = db.k_Books.Where(w => w.ID ==a).FirstOrDefault();
updatebook.Kitap_statusId = 2;
db.SaveChanges();
我需要向 k_KiralananKitaplar 添加数据并更新名为 Kitap_DurumId = 2 的行,但我只能一次添加数据或更新我不能做的 db.SaveChanges 给我错误
以下是数据示例:
- Kitap_Adi = 书名,
- Kitap_Yazar = book_author,
- Kitap_Tur = 书籍类型,
- Kitap_Sayfa = 书页,
- Kitap_DurumId = 图书状态
错误信息是
SqlException:违反主键约束“PK_k_KiralananKitaplar”。无法在对象“dbo.k_KiralananKitaplar”中插入重复键。重复键值为 (0)。
【问题讨论】:
-
请不要让我们猜测错误是什么 - 更具体,并在您的问题中包含类似的信息。
-
这是一个很好的例子,说明为什么你使用英语来命名你的类、接口、变量等。我只了解两件事:你使用
DateTime,它在某种程度上与Logins 相关.如果哈萨克语“kitap”与土耳其语“kitap”相同,它也与书籍有某种关系:) -
请阅读how to ask,以便您以后提高问题的质量。
-
至于你们在这里评论的其他人,关于没有错误的盐(看着你@J.Steen)和关于命名约定的讨论几乎不相关。诚然,如果名称对我们来说是描述性的,它会帮助我们帮助 OP,但它们不是导致问题的原因。如果尽管存在语言障碍,我们仍无法辨别代码在做什么并协助 OP,那么我们不应该首先解决这个问题。
-
@Ortund 我已经直接编辑了盐。这是对每天涌入大量低质量问题所带来的挫败感的发泄。但是,公平点,并被接受。
标签: c# entity-framework linq