C# 更改组合框中的开始索引?
我有一个带有不同文本框的表单,您可以在其中保存表格中某个人的信息。还有一个组合框,显示另一个表中的五个值,您可以在其中选择并保存在显示它们的同一个表中 问题是组合框是基于0索引的,表从1开始。当我保存第二个条目时,它实际上保存了第三个条目。如果我选择组合中的第一项,则会出现此错误:“外键冲突” 是否可以将组合中的开始索引设置为1,或者是两个表中的键出错了 我没办法解决这个问题C# 更改组合框中的开始索引?,c#,sql,winforms,combobox,C#,Sql,Winforms,Combobox,我有一个带有不同文本框的表单,您可以在其中保存表格中某个人的信息。还有一个组合框,显示另一个表中的五个值,您可以在其中选择并保存在显示它们的同一个表中 问题是组合框是基于0索引的,表从1开始。当我保存第二个条目时,它实际上保存了第三个条目。如果我选择组合中的第一项,则会出现此错误:“外键冲突” 是否可以将组合中的开始索引设置为1,或者是两个表中的键出错了 我没办法解决这个问题 SqlCommand command = new SqlCommand ("INSERT INTO Employee (
SqlCommand command = new SqlCommand ("INSERT INTO Employee (Name1, Email, Salary,"+
"DateofBirth, OnparantalLeave, DepartmentId) " +
"VALUES (@Name1, @Email, @Salary, @DateofBirth,"+
"@OnparantalLeave, @DepartmentId)", MyConnection.GetConnection());
command.Connection = MyConnection.GetConnection();
command.Parameters.AddWithValue("@Name1", textBoxNameF2.Text);
command.Parameters.AddWithValue("@Email", textBoxMailF2.Text);
command.Parameters.AddWithValue("@Salary", textBoxSalF2.Text);
command.Parameters.AddWithValue("@DateofBirth", SqlDbType.Date).Value =
dateTimePickerF2.Value.Date;
command.Parameters.AddWithValue("@OnparantalLeave", checkBoxParantF2.Checked);
command.Parameters.AddWithValue("@DepartmentId", comboBoxDepF2.SelectedIndex);
command.ExecuteNonQuery();
command.Parameters.Clear();
this.Close();
对我来说,使用
SelectedIndex
作为数据库ID似乎有点奇怪,但无论如何,为什么不简单地使用comboxDepf2.SelectedIndex+1
?为什么不绑定组合框的ValueMember
并从所选项获取它呢?为什么使用索引?正如RenéVogt所说,使用索引作为数据库ID是非常奇怪的,您必须捕获对象并传递ID。另一个技巧是,将项目划分为多个类。进入座椅的通道不应在视野内。正在工作!command.Parameters.AddWithValue(“@DepartmentId”,comboBoxDepF2.SelectedValue);谢谢你,穆奇!!!:)对我来说,使用SelectedIndex
作为数据库ID似乎有点奇怪,但无论如何,为什么不简单地使用comboxDepf2.SelectedIndex+1
?为什么不绑定组合框的ValueMember
并从所选项获取它呢?为什么使用索引?正如RenéVogt所说,使用索引作为数据库ID是非常奇怪的,您必须捕获对象并传递ID。另一个技巧是,将项目划分为多个类。进入座椅的通道不应在视野内。正在工作!command.Parameters.AddWithValue(“@DepartmentId”,comboBoxDepF2.SelectedValue);谢谢你,穆奇!!!:)