0

登録用のASP.NETウィザードがあります。ステップ1では、テーブルdbo.Empに入るコントロールがいくつかあります。このステップ1では、dbo.Emptypeと呼ばれる別のテーブルのコードビハインドからバインドされたDropDownListがいくつかあります。

ただし、フォームをテーブル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 に答える