Koen Hoebeek
Top achievements
Rank 1
Koen Hoebeek
asked on 18 Apr 2012, 05:11 PM
Dear all,
I'm following this demo : http://demos.telerik.com/aspnet-ajax/grid/examples/dataediting/usercontroleditform/defaultcs.aspx
I can simulate this in a working environment. But the database is not updated, only the in memory datatable.
How can I update the real database? Is there a method that can do or do you have working example that works directly on the SQLDatasource?
Please help!
Koen
I'm following this demo : http://demos.telerik.com/aspnet-ajax/grid/examples/dataediting/usercontroleditform/defaultcs.aspx
I can simulate this in a working environment. But the database is not updated, only the in memory datatable.
How can I update the real database? Is there a method that can do or do you have working example that works directly on the SQLDatasource?
Please help!
Koen
3 Answers, 1 is accepted
0
Elliott
Top achievements
Rank 2
answered on 18 Apr 2012, 05:54 PM
update these two methods to:
instantiate a SQL connection and SQL command object, along with all the relevant SQL parameter objects
open the connection
invoke a method of the SQL command object (ExecuteNonQuery or ExecuteScalar)
close the connection
dispose of the objects
well, that's how to do it in ADO.NET
there is a way to update the database directly off the DataSet
instantiate a SQL connection and SQL command object, along with all the relevant SQL parameter objects
open the connection
invoke a method of the SQL command object (ExecuteNonQuery or ExecuteScalar)
close the connection
dispose of the objects
well, that's how to do it in ADO.NET
there is a way to update the database directly off the DataSet
protected void RadGrid1_UpdateCommand(object source, GridCommandEventArgs e) { GridEditableItem editedItem = e.Item as GridEditableItem; UserControl userControl = (UserControl)e.Item.FindControl(GridEditFormItem.EditFormUserControlID); //Prepare new row to add it in the DataSource DataRow[] changedRows = this.Employees.Select("EmployeeID = " + editedItem.OwnerTableView.DataKeyValues[editedItem.ItemIndex]["EmployeeID"]); if (changedRows.Length != 1) { RadGrid1.Controls.Add(new LiteralControl("Unable to locate the Employee for updating.")); e.Canceled = true; return; } //Update new values Hashtable newValues = new Hashtable(); newValues["Country"] = (userControl.FindControl("TextBox7") as TextBox).Text; newValues["City"] = (userControl.FindControl("TextBox8") as TextBox).Text; newValues["Region"] = (userControl.FindControl("TextBox9") as TextBox).Text; newValues["HomePhone"] = (userControl.FindControl("HomePhoneBox") as RadMaskedTextBox).Text; newValues["BirthDate"] = (userControl.FindControl("BirthDatePicker") as RadDatePicker).SelectedDate.ToString(); newValues["TitleOfCourtesy"] = (userControl.FindControl("ddlTOC") as DropDownList).SelectedItem.Value; newValues["Notes"] = (userControl.FindControl("TextBox1") as TextBox).Text; newValues["Address"] = (userControl.FindControl("TextBox6") as TextBox).Text; newValues["FirstName"] = (userControl.FindControl("TextBox2") as TextBox).Text; newValues["LastName"] = (userControl.FindControl("TextBox3") as TextBox).Text; newValues["HireDate"] = (userControl.FindControl("HireDatePicker") as RadDatePicker).SelectedDate.ToString(); newValues["Title"] = (userControl.FindControl("TextBox4") as TextBox).Text; changedRows[0].BeginEdit(); try { foreach (DictionaryEntry entry in newValues) { changedRows[0][(string)entry.Key] = entry.Value; } changedRows[0].EndEdit(); this.Employees.AcceptChanges(); } catch (Exception ex) { changedRows[0].CancelEdit(); Label lblError = new Label(); lblError.Text = "Unable to update Employees. Reason: " + ex.Message; lblError.ForeColor = System.Drawing.Color.Red; RadGrid1.Controls.Add(lblError); e.Canceled = true; } } protected void RadGrid1_InsertCommand(object source, GridCommandEventArgs e) { GridEditableItem editedItem = e.Item as GridEditableItem; UserControl userControl = (UserControl)e.Item.FindControl(GridEditFormItem.EditFormUserControlID); //Create new row in the DataSource DataRow newRow = this.Employees.NewRow(); //Insert new values Hashtable newValues = new Hashtable(); newValues["Country"] = (userControl.FindControl("TextBox7") as TextBox).Text; newValues["City"] = (userControl.FindControl("TextBox8") as TextBox).Text; newValues["Region"] = (userControl.FindControl("TextBox9") as TextBox).Text; newValues["HomePhone"] = (userControl.FindControl("HomePhoneBox") as RadMaskedTextBox).Text; newValues["BirthDate"] = (userControl.FindControl("BirthDatePicker") as RadDatePicker).SelectedDate.ToString(); newValues["TitleOfCourtesy"] = (userControl.FindControl("ddlTOC") as DropDownList).SelectedItem.Value; newValues["Notes"] = (userControl.FindControl("TextBox1") as TextBox).Text; newValues["Address"] = (userControl.FindControl("TextBox6") as TextBox).Text; newValues["FirstName"] = (userControl.FindControl("TextBox2") as TextBox).Text; newValues["LastName"] = (userControl.FindControl("TextBox3") as TextBox).Text; newValues["HireDate"] = (userControl.FindControl("HireDatePicker") as RadDatePicker).SelectedDate.ToString(); newValues["Title"] = (userControl.FindControl("TextBox4") as TextBox).Text; //make sure that unique primary key value is generated for the inserted row newValues["EmployeeID"] = (int)this.Employees.Rows[this.Employees.Rows.Count - 1]["EmployeeID"] + 1; try { foreach (DictionaryEntry entry in newValues) { newRow[(string)entry.Key] = entry.Value; } this.Employees.Rows.Add(newRow); this.Employees.AcceptChanges(); } catch (Exception ex) { Label lblError = new Label(); lblError.Text = "Unable to insert Employees. Reason: " + ex.Message; lblError.ForeColor = System.Drawing.Color.Red; RadGrid1.Controls.Add(lblError); e.Canceled = true; } } protected void RadGrid1_DeleteCommand(object source, GridCommandEventArgs e) { string ID = (e.Item as GridDataItem).OwnerTableView.DataKeyValues[e.Item.ItemIndex]["EmployeeID"].ToString(); DataTable employeeTable = this.Employees; if (employeeTable.Rows.Find(ID) != null) { employeeTable.Rows.Find(ID).Delete(); employeeTable.AcceptChanges(); } }}}0
Koen Hoebeek
Top achievements
Rank 1
answered on 18 Apr 2012, 06:35 PM
Thanks for your answer.
You say : "there is a way to update the database directly off the DataSet "
How to do this? You have simple example of it? Should be very usefull for me and many others.
Thanks,
Koen
You say : "there is a way to update the database directly off the DataSet "
How to do this? You have simple example of it? Should be very usefull for me and many others.
Thanks,
Koen
0
Elliott
Top achievements
Rank 2
answered on 18 Apr 2012, 06:44 PM
look at this
http://support.microsoft.com/kb/307587
I use classic ADO.NET because it works, and the objects needed only exist as long as they need to update the database
I only use a data adapter to Fill a dataset, which is then passed back to a business layer
you're using Microsoft SQL Server, right?
http://support.microsoft.com/kb/307587
I use classic ADO.NET because it works, and the objects needed only exist as long as they need to update the database
I only use a data adapter to Fill a dataset, which is then passed back to a business layer
you're using Microsoft SQL Server, right?