我正在尝试将新记录添加到我的表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。
答案 0 :(得分:1)
使用txtPhone.Text获取文本框中的值而不是文本框对象本身。
答案 1 :(得分:1)
如果Phone
字段是数字字段,那么您应该:
dRow["Phone"] = Convert.ToInt64(txtPhone.Text);
答案 2 :(得分:0)
使用txtPhone.Text
指定电话号码的值。
答案 3 :(得分:0)
试试这个
protected void btnAdd_Click(object sender, EventArgs e) {
cb = new SqlCommandBuilder(daEmp);
DataRow dRow = dsEmp.Tables["tblEmployee"].NewRow();
dRow["Lname"] = txtLname.Text;
dRow["Fname"] = txtFname.Text;
dRow["Mname"] = txtMname.Text;
dRow["Address"] = txtAddress.Text;
dRow["Email"] = txtEmail.Text;
dRow["Phone"] = txtPhone.Text;
dRow["Jobtitle"] = txtJobtitle.Text;
dRow["Salary"] = txtSalary.Text;
dRow["DepartmentID"] = drpDepartments.SelectedValue;
dsEmp.Tables["tblEmployee"].Rows.Add(dRow);
daEmp.Update(dsEmp, "tblEmployee");
dsEmp.Tables["tblEmployee"].AcceptChanges();
}
答案 4 :(得分:0)
所有拳头都在任何地方使用.Text
属性,而对于手机投射,它是整数
protected void btnAdd_Click(object sender, EventArgs e)
{
cb = new SqlCommandBuilder(daEmp);
DataRow dRow = dsEmp.Tables["tblEmployee"].NewRow();
dRow["Lname"] = txtLname.Text;
dRow["Fname"] = txtFname.Text;
dRow["Mname"] = txtMname.Text;
dRow["Address"] = txtAddress.Text;
dRow["Email"] = txtEmail.Text;
dRow["Phone"] = Convert.ToInt32(txtPhone.Text);
dRow["Jobtitle"] = txtJobtitle.Text;
dRow["Salary"] = txtSalary.Text;
dRow["DepartmentID"] = drpDepartments.SelectedValue;
dsEmp.Tables["tblEmployee"].Rows.Add(dRow);
daEmp.Update(dsEmp, "tblEmployee");
dsEmp.Tables["tblEmployee"].AcceptChanges();
}
答案 5 :(得分:0)
只需添加txtPhone.text即可将手机转换为文字。实际上你应该对webforms中的所有字段值进行处理,并且还需要对每个表单字段进行适当的验证,这是一个很好的做法。