Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改组合框中的开始索引?_C#_Sql_Winforms_Combobox - Fatal编程技术网

C# 更改组合框中的开始索引?

C# 更改组合框中的开始索引?,c#,sql,winforms,combobox,C#,Sql,Winforms,Combobox,我有一个带有不同文本框的表单,您可以在其中保存表格中某个人的信息。还有一个组合框,显示另一个表中的五个值,您可以在其中选择并保存在显示它们的同一个表中 问题是组合框是基于0索引的,表从1开始。当我保存第二个条目时,它实际上保存了第三个条目。如果我选择组合中的第一项,则会出现此错误:“外键冲突” 是否可以将组合中的开始索引设置为1,或者是两个表中的键出错了 我没办法解决这个问题 SqlCommand command = new SqlCommand ("INSERT INTO Employee (

我有一个带有不同文本框的表单,您可以在其中保存表格中某个人的信息。还有一个组合框,显示另一个表中的五个值,您可以在其中选择并保存在显示它们的同一个表中

问题是组合框是基于0索引的,表从1开始。当我保存第二个条目时,它实际上保存了第三个条目。如果我选择组合中的第一项,则会出现此错误:“外键冲突”

是否可以将组合中的开始索引设置为1,或者是两个表中的键出错了

我没办法解决这个问题

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);谢谢你,穆奇!!!:)