Я пытаюсь добавить новые записи в таблицу tblEmployee
. Это мой код:Вставить новое значение в таблицу C# ASP.NET
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.
попытайтесь изменить его на строку и используйте 'textbox.Text', чтобы получить значение. Или, если вы все еще хотите использовать телефон как 'int', используйте' Convert.ToInt64' на 'txtPhone.Text' –
Другая ошибка' Column 'EmployeeID' не разрешает ошибки. Ошибка в этой строке 'dsEmp.Tables [" tblEmployee "] .Rows.Add (dRow); ' – user2971155
Спасибо всем за вашу помощь! Сейчас все работает. – user2971155