0

テーブルに新しいレコードを追加しようとしていますtblEmployee。これは私のコードです:

        cb = new SqlCommandBuilder(daEmp);

        DataRow dRow = dsEmp.Tables["tblEmployee"].NewRow();
        dRow["EmployeeID"] = txtID.Text;
        dRow["Lname"] = txtLname.Text;
        dRow["Fname"] = txtFname.Text;
        dRow["Mname"] = txtMname.Text;
        dRow["Address"] = txtAddress.Text;
        dRow["Email"] = txtEmail.Text;
        dRow["Phone"] = Convert.ToInt64(txtPhone.Text);
        dRow["Jobtitle"] = txtJobtitle.Text;
        dRow["Salary"] = txtSalary.Text;
        dRow["DeptID"] = drpDepartments.SelectedValue;

        dsEmp.Tables["tblEmployee"].Rows.Add(dRow);
        daEmp.Update(dsEmp, "tblEmployee");
        dsEmp.Tables["tblEmployee"].AcceptChanges();

この行に次のエラー メッセージが表示されます: dRow["Phone"] = txtPhone;。それは言うUnable to cast object of type 'System.Web.UI.WebControls.TextBox' to type 'System.IConvertible'.Couldn't store <System.Web.UI.WebControls.TextBox> in Phone Column. Expected type is Int64.

テキストボックスのコード:

<asp:TextBox ID="txtPhone" runat="server"></asp:TextBox>

データベースの列のデータ型Phoneは int ですが、bigint に変更しても同じエラーが発生します。問題に見えるのは?

ちなみに私はC# ASP.NETを使っています。

4

6 に答える 6

1

テキストボックスオブジェクト自体ではなく、txtPhone.Text を使用してテキストボックス内の値を取得します。

于 2013-11-13T07:28:43.510 に答える