Я пытаюсь обновить записи, используя C# ASP.NET. У меня есть следующие таблицы и текстовые поля. Процесс должен состоять в том, чтобы сначала найти EmployeeID. Введите EmployeeID
на txtID и нажмите btnSearch
. Текстовые поля будут заполнены тогда значениями EmployeeID = txtID.Text
. txtLname
, txtFname
, и т.д. будет заполнен. Чтобы сохранить изменения, нажмите btnUpdate
.не может обновить значение из dropdownbox
Но всякий раз, когда я пытаюсь щелкнуть на выпадающем списке, чтобы изменить отдел сотрудника, нет ошибки, но изменение не было сохранено. Кроме того, когда я пытаюсь изменить EmployeeID, он возвращает эту ошибку: Object reference not set to an instance of an object
в этой строке dRow["EmployeeID"] = txtID.Text;
.
EmployeeID и DeptID оба устанавливаются в качестве первичного ключа
Вот мой код btnSearch_Click()
DataRow myRow = dsEmp.Tables["tblEmployee"].Rows.Find(int.Parse(txtID.Text));
txtID.Text = myRow["EmployeeID"].ToString();
txtLname.Text = myRow["Lname"].ToString();
txtFname.Text = myRow["Fname"].ToString();
txtMname.Text = myRow["Mname"].ToString();
txtAddress.Text = myRow["Address"].ToString();
txtEmail.Text = myRow["Email"].ToString();
txtPhone.Text = myRow["Phone"].ToString();
txtJobtitle.Text = myRow["Jobtitle"].ToString();
txtSalary.Text = myRow["Salary"].ToString();
drpDepartments.SelectedValue = myRow["DeptID"].ToString();`
Вот мой код btnUpdate_click()
cb = new SqlCommandBuilder(daEmp);
DataRow dRow = dsEmp.Tables["tblEmployee"].Rows.Find(int.Parse(txtID.Text));
dRow["EmployeeID"] = txtID.Text;
dRow["DeptID"] = drpDepartments.SelectedValue;
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;
daEmp.Update(dsEmp, "tblEmployee");
dsEmp.Tables["tblEmployee"].AcceptChanges();
Вот код для Page_Load
sConn = new SqlConnection(sStr);
daEmp = new SqlDataAdapter("SELECT * FROM tblEmployee", sConn);
daDep = new SqlDataAdapter("SELECT * FROM tblDepartment", sConn);
dsEmp = new DataSet();
dsDep = new DataSet();
daEmp.Fill(dsEmp, "tblEmployee");
daDep.Fill(dsDep, "tblDepartment");
dsEmp.Tables["tblEmployee"].PrimaryKey = new DataColumn[] { dsEmp.Tables["tblEmployee"].Columns["EmployeeID"] };
drpDepartments.DataSource = dsDep.Tables["tblDepartment"];
drpDepartments.DataTextField = "Description";
drpDepartments.DataValueField = "DeptID";
drpDepartments.DataBind();
Я просто не понимаю, почему это происходит. Пожалуйста, помогите мне, я новичок в ASP.NET. Благодарю.
Пожалуйста, пост код для 'Page_Load' события. –
@KarlAnderson Я добавил 'Page_Load' – user2971155
Знаете ли вы, как отлаживать свой код в Visual Studio? –