0

我有一个用于注册的 ASP.NET 向导。在第 1 步中,我几乎没有进入表 dbo.Emp 的控件。在此步骤 1 中,我有几个 DropDownList,它们是从名为 dbo.Emptype 的不同表的代码隐藏中绑定的。

但是,在将表单插入到表 dbo.Emp 时,我收到以下错误-

Insert Error:Error converting data type nvarchar to numeric.

我不知道它是针对哪个控件而告诉它的。

但这里有一个声明——

cmd.Parameters.AddWithValue("@EmpType",DropDownList1.SelectedIndex);
cmd.Parameters.AddWithValue("@DeptID", DropDownList3.SelectedIndex);

我希望将与 EmpType 中的项目关联的 INT 值插入到表中。DropDownList1 绑定到名为 Dbo.EmpType (TypeID (PK-AutoIncrement)| Type) 的表中,因此,当用户下拉该控件并选择值时,我需要将 DataValueField(即 TypeID)插入表中。

我该怎么办?

这是我的绑定课程。

public void dropdowntype()
        {
            SqlConnection myConn = new SqlConnection(@"Data Source=USER-PC\SQLEXPRESS;Initial Catalog=KKSTech;Integrated Security=True");
            SqlCommand myCmd = new SqlCommand(
                "SELECT Type, TypeID FROM EmpType", myConn);
            myConn.Open();
            SqlDataReader myReader3 = myCmd.ExecuteReader();

            //Set up the data binding.
            Emp_type.DataSource = myReader3;
            Emp_type.DataTextField = "Type";
            Emp_type.DataValueField = "TypeID";
            Emp_type.DataBind();



 //Close the connection.
            myConn.Close();
            myReader3.Close();

        }
protected void Page_Load(object sender, EventArgs e)
        {
            if (!(Page.IsPostBack))
            {
                dropdownDept();
                dropdowntype();
                dropdownskills();
            }

        }
4

1 回答 1

1

如果您需要下拉列表中的数据值字段,请使用此语句

cmd.Parameters.AddWithValue("@EmpType",DropDownList1.SelectedValue);
cmd.Parameters.AddWithValue("@DeptID",DropDownList3.SelectedValue);

您当前正在选择下拉列表的索引。

于 2012-07-27T13:37:26.980 回答