Groups | Blog | Home
all groups > asp.net > march 2005 >

asp.net : updating a oldb datasource


merrittr NO[at]SPAM gmail.com
3/26/2005 11:20:21 PM
I have a grideiw that feeds a detailView via 2 AccessDateSources the
detail view has and update command that
UpdateCommand="UPDATE [account] SET [acctnum] = ? WHERE [acctCode] =
[acctCode_ID_FK]"


does'nt update since it doesn't recognize the info from the DetailView
that it needs to do the update

any ideas?


<asp:AccessDataSource ID="AccessDataSource1" Runat="server"
DataFile="e:\db\travel\mile.mdb"
SelectCommand="SELECT employee.lastName,
employee.firstName, account_supervisor_int.acctCode_ID_FK,
account_supervisor_int.employee_ID_FK, employee.employeeID,
account.acctCode, account.acctnum FROM employee, account,
account_supervisor_int WHERE
(((account_supervisor_int.acctCode_ID_FK)=[acctCode]) AND
((account_supervisor_int.employee_ID_FK)=[employeeid]))" >
</asp:AccessDataSource>
<asp:GridView ID="GridView1" Runat="server" AllowPaging="True"
AllowSorting="True" DataSourceID="AccessDataSource1"
DataKeyNames="employeeid" AutoGenerateSelectButton="True">
</asp:GridView>
<asp:AccessDataSource ID="AccessDataSource2" Runat="server"
DataFile="e:\db\travel\mile.mdb"
SelectCommand="SELECT employee.lastName,
employee.firstName, account_supervisor_int.acctCode_ID_FK,
account_supervisor_int.employee_ID_FK, employee.employeeID,
account.acctCode, account.acctnum FROM employee, account,
account_supervisor_int WHERE
(((account_supervisor_int.acctCode_ID_FK)=[acctCode]) AND
((account_supervisor_int.employee_ID_FK)=[employeeid]))"
UpdateCommand="UPDATE [account] SET [acctnum] = ? WHERE
[acctCode] = [acctCode_ID_FK]"
InsertCommand="INSERT INTO [employee] ([employeeid])
VALUES (employeeid)" FilterExpression="employeeid='@employeeid'">
<FilterParameters>
<asp:ControlParameter Name="employeeid"
ControlID="GridView1"
PropertyName="SelectedValue"></asp:ControlParameter>
</FilterParameters>
</asp:AccessDataSource>
<asp:DetailsView ID="DetailsView1" Runat="server"
AutoGenerateDeleteButton="False"
AutoGenerateEditButton="True"
DataSourceID="AccessDataSource2" DataKeyNames="acctCode"
AutoGenerateInsertButton="False"
onitemupdated="DetailsView1_ItemUpdated" >
merrittr NO[at]SPAM gmail.com
4/4/2005 2:18:56 PM
turns out that
when you use a update command like:
updatecommand="UPDATE account SET acctnum = ? WHERE acctCode = ?"
then fields that are getting updated need to match up in your select
command
so by making acctnum and acctcode the same "ordinal" as in the update
Asp.Net matched em up.

selectcommand="SELECT account.acctnum, account.acctCode,
employee.lastName, employee.firstName,
account_supervisor_int.acctCode_ID_FK,
account_supervisor_int.employee_ID_FK, employee.employeeID FROM
employee, account, account_supervisor_int WHERE
(((account_supervisor_int.acctCode_ID_FK)=[acctCode]) AND
((account_supervisor_int.employee_ID_FK)=[employeeid]))"





<%@Page Language="C#" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

</head>
<body onload="init()" background="./images/indtextb.jpg"
bgcolor="#FFFFFF" text="#000000" link="navy" vlink="navy"
alink="navy">
<form runat="server">

<asp:accessdatasource
id="AccessDataSource1"
runat="server"
datasourcemode="DataSet"
datafile="f:\db\travel\mile.mdb"
selectcommand="SELECT account.acctnum, account.acctCode,
employee.lastName, employee.firstName,
account_supervisor_int.acctCode_ID_FK,
account_supervisor_int.employee_ID_FK, employee.employeeID FROM
employee, account, account_supervisor_int WHERE
(((account_supervisor_int.acctCode_ID_FK)=[acctCode]) AND
((account_supervisor_int.employee_ID_FK)=[employeeid]))"
updatecommand="UPDATE account SET acctnum = ? WHERE acctCode =
?" >
</asp:accessdatasource>
<br />
<br />
<asp:gridview
id="GridView1"
runat="server"
autogeneratecolumns="False"
datakeynames="acctCode"
autogenerateeditbutton="True"
datasourceid="AccessDataSource1">
<HeaderStyle BorderColor="White" BackColor="SILVER"
ForeColor="navy" Font-Bold="True" Font-Names="Arial" Font-Size="9"
HorizontalAlign="Center" />
<RowStyle BorderColor="" BackColor="lightsteelblue"
ForeColor="navy" Font-Names="Arial" Font-Size="12" Font-Bold="True"
HorizontalAlign="Center" />
<columns>
<asp:boundfield headertext="acctnum" datafield="acctnum"
/>
<asp:boundfield headertext="firstName"
datafield="FirstName" ReadOnly />
<asp:boundfield headertext="lastName" datafield="LastName"
ReadOnly/>
</columns>
</asp:gridview>

</form>
</BODY>
</HTML>



[quoted text, click to view]
AddThis Social Bookmark Button