I have two tables, one for the guards and one for the cities. Linked by the cityID. I want to allow update the name of the city, located in the cities table. I did "DropDownList" inside "DetailsView" to enable select the cities on the list, end update the "SelectCommand" and "UpdateCommand" with "left jion for the two tables. The city name is not Updating.. what should I do?
Thank you
<asp:SqlDataSource ID="SqlDataSource1" runat="server" CoectionString="<%$ CoectionStrings:GuardsDBCoectionString %>" DeleteCommand="DELETE FROM [Guard] WHERE [GuardID] = @GuardID" InsertCommand="INSERT INTO [Guard] ([FirstName]) VALUES (@FirstName)" SelectCommand="SELECT [GuardID], [FirstName] FROM [Guard]" UpdateCommand="UPDATE [Guard] SET [FirstName] = @FirstName WHERE [GuardID] = @GuardID">
<DeleteParameters>
<asp:Parameter Name="GuardID" Type="Int16" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="FirstName" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="FirstName" Type="String" />
<asp:Parameter Name="GuardID" Type="Int16" />
</UpdateParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
CoectionString="<%$ CoectionStrings:GuardsDBCoectionString %>"
DeleteCommand="DELETE FROM [Guard] WHERE [GuardID] = @GuardID"
InsertCommand="INSERT INTO [Guard] ([FirstName], [cityID]) VALUES (@FirstName, @cityID)"
SelectCommand="SELECT Guard.GuardID, Guard.FirstName, city.cityName FROM Guard LEFT OUTER JOIN city ON Guard.cityID = city.cityID WHERE (GuardID = @GuardID)"
UpdateCommand="UPDATE [Guard] SET [FirstName] = @FirstName, [cityID] = city.cityID
from [Guard]
left join [city] on Guard.cityID= city.cityID
WHERE ([GuardID] = @GuardID) ">
<DeleteParameters>
<asp:Parameter Name="GuardID" Type="Int16" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="FirstName" Type="String" />
<asp:Parameter Name="cityID" Type="Int16" />
</InsertParameters>
<SelectParameters>
<asp:ControlParameter ControlID="GridView1" Name="GuardID" PropertyName="SelectedValue" Type="Int16" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="FirstName" Type="String" />
<asp:Parameter Name="cityID" Type="Int16" />
<asp:Parameter Name="GuardID" Type="Int16" />
</UpdateParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="CITYSqlDataSource" runat="server" CoectionString="<%$ CoectionStrings:GuardsDBCoectionString %>" SelectCommand="SELECT * FROM [city]"></asp:SqlDataSource>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="GuardID" DataSourceID="SqlDataSource1">
<Columns>
<asp:CommandField ShowSelectButton="True" />
<asp:BoundField DataField="GuardID" HeaderText="GuardID" InsertVisible="False" ReadOnly="True" SortExpression="GuardID" />
<asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />
</Columns>
</asp:GridView>
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" DataKeyNames="GuardID" DataSourceID="SqlDataSource2" Height="50px" Width="125px">
<Fields>
<asp:BoundField DataField="GuardID" HeaderText="GuardID" InsertVisible="False" ReadOnly="True" SortExpression="GuardID" />
<asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />
<asp:TemplateField HeaderText="cityID" SortExpression="cityID">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="CITYSqlDataSource" DataTextField="cityName" DataValueField="cityID">
</asp:DropDownList>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("cityName")%>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("cityName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" />
</Fields>
</asp:DetailsView>
