Jaha, så var det dags igen. Uppdateringsproblem i databasen (Access) även då jag tycker mig ha ändrat rättigheterna till databasen. Radera fungerar fint.
Får inget felmeddelande men inget uppdateras heller. Jag kan testat att köra med den koden som följde med boken (build your own asp.net website) men med samma resultat.
Såhär ser iaf koden ut:
<%@ Import Namespace="System.Data.OleDb" %>
<html>
<head>
<script runat="server" language="C#">
OleDbConnection objConn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;" Data Source=C:\\dbs\\Dnozzle.mdb");
OleDbCommand objCmd;
OleDbDataReader objRdr;
void Page_Load(Object s, EventArgs e){
if(!IsPostBack){
objCmd = new OleDbCommand("SELECT * FROM Employees", objConn);
objConn.Open();
objRdr = objCmd.ExecuteReader();
ddlEmployees.DataSource = objRdr;
ddlEmployees.DataValueField = "EmployeeID";
ddlEmployees.DataTextField = "Name";
ddlEmployees.DataBind();
objRdr.Close();
objConn.Close();
}
}
void SelectEmployee(Object s, EventArgs e){
objCmd = new OleDbCommand("SELECT * FROM Employees WHERE EmployeeID=@EmployeeID", objConn);
objCmd.Parameters.Add("@EmployeeID", ddlEmployees.SelectedItem.Value);
objConn.Open();
objRdr = objCmd.ExecuteReader();
while(objRdr.Read()){
txtName.Text = (string) objRdr["Name"];
txtUsername.Text = (string) objRdr["Username"];
txtAddress.Text = (string) objRdr["Address"];
txtCity.Text = (string) objRdr["City"];
txtState.Text = (string) objRdr["State"];
txtZip.Text = (string) objRdr["Zip"];
txtHomePhone.Text = (string) objRdr["HomePhone"];
txtExtension.Text = (string) objRdr["Extension"];
txtMobilePhone.Text = (string) objRdr["MobilePhone"];
}
objRdr.Close();
objConn.Close();
btnUpdate.Enabled = true;
}
void UpdateEmployee(Object s, EventArgs e){
objCmd = new OleDbCommand("UPDATE Employees SET Name=@Name, Username=@Username, Address=@Address, City=@City, State=@State, Zip=@Zip, HomePhone=@HomePhone, Extension=@Extension, MobilePhone=@MobilePhone WHERE EmployeeID=@EmployeeID", objConn);
objCmd.Parameters.Add("@EmployeeID", ddlEmployees.SelectedItem.Value);
objCmd.Parameters.Add("@Name", txtName.Text);
objCmd.Parameters.Add("@Username", txtUsername.Text);
objCmd.Parameters.Add("@Address", txtAddress.Text);
objCmd.Parameters.Add("@City", txtCity.Text);
objCmd.Parameters.Add("@State", txtState.Text);
objCmd.Parameters.Add("@Zip", txtZip.Text);
objCmd.Parameters.Add("@HomePhone", txtHomePhone.Text);
objCmd.Parameters.Add("@Extension", txtExtension.Text);
objCmd.Parameters.Add("@MobilePhone", txtMobilePhone.Text);
objConn.Open();
objCmd.ExecuteNonQuery();
objConn.Close();
}
</script>
<link href="styles.css" rel="stylesheet" />
</head>
<body>
<form runat="server">
<table width="100%" border="0" cellspacing="0" cellpadding="10">
<tr>
<td valign="top">
<h1>Admin Tools</h1>
<p>Select an employee to update:<br />
<asp:DropDownList id="ddlEmployees" CssClass="dropdownmenu" runat="server" />
<asp:Button id="btnSelect" CssClass="Button" Text="Select" OnClick="SelectEmployee" runat="server" /></p>
<p>Name: <asp:TextBox id="txtName" CssClass="textbox" runat="server" /><br />
User name: <asp:TextBox id="txtUsername" CssClass="textbox" runat="server" /><br />
Address: <asp:TextBox id="txtAddress" CssClass="textbox" runat="server" /><br />
City: <asp:TextBox id="txtCity" CssClass="textbox" runat="server" /><br />
State: <asp:TextBox id="txtState" CssClass="textbox" runat="server" /><br />
Zip: <asp:TextBox id="txtZip" CssClass="textbox" runat="server" /><br />
Home Phone: <asp:TextBox id="txtHomePhone" CssClass="textbox" runat="server" /><br />
Extension: <asp:TextBox id="txtExtension" CssClass="textbox" runat="server" /><br />
Mobile Phone: <asp:TextBox id="txtMobilePhone" CssClass="textbox" runat="server" /><br />
<asp:Button id="btnUpdate" CssClass="Button" Text="Update Employee" Enabled="False" OnClick="UpdateEmployee" runat="server" /></p>
</td>
</tr>
</table>
</form>
</body>
</html>