Can't Edit Database
I've written a page to edit my database, the page runs and apears to do everything properly but when i go back and check my database nothing has changed. Any ideas on why?
thanks
<%@ Import namespace="System.Data" %>
<%@ Import namespace="System.Data.SqlClient" %>
<html>
<head>
<title>Updating Moniters</title>
</head>
<body>
<form method="post" runat="server">
<asp:DataGrid id="dgMonitors" runat="server" CallPadding="5" AutoGenerateColumns="False" OnEditCommand="EditRecord" OnCancelCommand="CancelEdit" OnUpdateCommand="UpdateRecord" >
<Columns>
<asp:BoundColumn DataField="ID" ReadOnly="True" Visible="False" />
<asp:BoundColumn DataField="Manufacturer" HeaderText="Manufacturer" />
<asp:BoundColumn DataField="ModelNumber" HeaderText="ModelNumber" />
<asp:BoundColumn DataField="SerialNumber" HeaderText="SerialNumber" />
<asp:BoundColumn DataField="SerialNumber" HeaderText="Other" />
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Save" CancelText="Cancel" EditText="Edit" />
</Columns>
</asp:DataGrid>
</form>
</body>
</html>
<script language="c#" runat="server">
private String strConnection = ConfigurationSettings.AppSettings["AAC"];
private String strSQLSelect = "SELECT ID, Manufacturer, ModelNumber, SerialNumber, Other FROM Monitors";
private String MonitorTableName = "MonitorTable";
private SqlConnection objConnection;
private void Page_Load(object Sender, System.EventArgs e)
{
LoadGrid();
}
private void LoadGrid()
{
Connect();
SqlDataAdapter adapter = new SqlDataAdapter(strSQLSelect, objConnection);
DataSet ds = new DataSet();
adapter.Fill(ds, MonitorTableName);
Disconnect();
dgMonitors.DataSource = ds.Tables[MonitorTableName];
dgMonitors.DataBind();
}
private void Connect()
{
if (objConnection == null)
objConnection = new SqlConnection(strConnection);
if (objConnection.State == ConnectionState.Closed)
objConnection.Open();
}
private void Disconnect()
{
objConnection.Close();
}
public void EditRecord(object sender, DataGridCommandEventArgs e)
{
dgMonitors.EditItemIndex = e.Item.ItemIndex;
LoadGrid();
}
public void CancelEdit(object sender, DataGridCommandEventArgs e)
{
dgMonitors.EditItemIndex = -1;
LoadGrid();
}
public void UpdateRecord(object sender, DataGridCommandEventArgs e)
{
int ID = Convert.ToInt32(e.Item.Cells[0].Text);
TextBox ManufacturerTextBox = (TextBox)e.Item.Cells[1].Controls[0];
string Manufacturer = Convert.ToString(ManufacturerTextBox.Text);
TextBox ModelNumberTextBox = (TextBox)e.Item.Cells[2].Controls[0];
string ModelNumber = Convert.ToString(ModelNumberTextBox.Text);
TextBox SerialNumberTextBox = (TextBox)e.Item.Cells[3].Controls[0];
string SerialNumber = Convert.ToString(SerialNumberTextBox.Text);
TextBox OtherTextBox = (TextBox)e.Item.Cells[4].Controls[0];
string Other = Convert.ToString(OtherTextBox.Text);
dgMonitors.EditItemIndex = -1;
UpdateMonitor(ID, Manufacturer, ModelNumber, SerialNumber, Other);
DataSet ds = new DataSet();
dgMonitors.DataSource = ds.Tables[MonitorTableName];
dgMonitors.DataBind();
}
private void UpdateMonitor(int ID, string Manufacturer, string ModelNumber, string SerialNumber, string Other)
{
Connect();
SqlDataAdapter adapter = new SqlDataAdapter(strSQLSelect, objConnection);
DataSet ds = new DataSet();
adapter.Fill(ds, MonitorTableName);
Disconnect();
DataTable tb1 = ds.Tables[MonitorTableName];
tb1.PrimaryKey = new DataColumn[] {tb1.Columns["ID"]};
DataRow row = tb1.Rows.Find(ID);
row["Manufacturer"] = Manufacturer;
row["ModelNumber"] = ModelNumber;
row["SerialNumber"] = SerialNumber;
row["Other"] = Other;
SqlCommandBuilder cb = new SqlCommandBuilder(adapter);
Connect();
adapter.Update(ds, MonitorTableName);
Disconnect();
LoadGrid();
}
</script>
|