ggaarryy
asked on
How to update sql with gridview from button not in gridview
I have a gridview with some checkboxes and i want to update individual rows in sql database from a button that is not part of the gridview.. below is the gridview and c# code behide for the button clcik event. I can get the data from the gridview for updating but I don't know how to do the actual database update.
<asp:GridView ID="GridViewScheduleEditWi nners" runat="server"
AutoGenerateColumns="False " CaptionAlign="Bottom"
DataSourceID="SqlDataSourc e1" BackColor="White" BorderColor="#DEDFDE" BorderStyle="None"
BorderWidth="1px" CellPadding="4" EmptyDataText="Data is Not Available" ForeColor="Black"
GridLines="Vertical" AllowPaging="True"
onrowdatabound="GridView1_ RowDataBou nd" Font-Size="Small"
DataKeyNames="Team1Id,Team 2Id,Schedu leId">
<RowStyle BackColor="#F7F7DE" />
<Columns>
<asp:BoundField DataField="Team1Id" HeaderText="Team1Id"
ShowHeader="False" SortExpression="Team1Id" Visible="False" />
<asp:BoundField DataField="Team2Id" HeaderText="Team2Id"
SortExpression="Team2Id" ShowHeader="False" Visible="False" />
<asp:BoundField DataField="date" HeaderText="Date" SortExpression="date"
DataFormatString="{0:MMMM dd}" />
<asp:BoundField DataField="date" HeaderText="Time" SortExpression="date"
DataFormatString="{0:h:mm tt}" />
<asp:BoundField DataField="Name" HeaderText="Field" SortExpression="Name" />
<asp:BoundField DataField="Team1Name" HeaderText="Team1Name"
SortExpression="Team1Name" />
<asp:TemplateField HeaderText="Won">
<ItemTemplate>
<asp:CheckBox ID="Team1Won" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Team2Name" SortExpression="Team2Name"
HeaderText="Team2Name" />
<asp:TemplateField HeaderText="Won">
<ItemTemplate>
<asp:CheckBox ID="Team2Won" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#CCCC99" />
<PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
<SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:CISoftba llConnecti onString %>"
SelectCommand="SELECT Leagues.Year, Leagues.LeagueId, ScheduleWeekTimeField.date , Fields.FieldId, Fields.Name, Teams.TeamName AS Team1Name, Teams_1.TeamName AS Team2Name, ScheduleTeams.Team1Id, ScheduleTeams.Team2Id, ScheduleTeams.ScheduleId FROM Leagues INNER JOIN ScheduleWeekTimeField ON Leagues.Year = ScheduleWeekTimeField.year AND Leagues.LeagueId = ScheduleWeekTimeField.Leag ueId INNER JOIN Fields ON ScheduleWeekTimeField.fiel dId = Fields.FieldId INNER JOIN ScheduleTeams ON ScheduleWeekTimeField.Sche duleId = ScheduleTeams.ScheduleId INNER JOIN Teams ON Leagues.Year = Teams.Year AND Leagues.LeagueId = Teams.LeagueId AND ScheduleTeams.Team1Id = Teams.TeamNumber INNER JOIN Teams AS Teams_1 ON Leagues.Year = Teams_1.Year AND Leagues.LeagueId = Teams_1.LeagueId AND ScheduleTeams.Team2Id = Teams_1.TeamNumber WHERE (Leagues.Year = '2011') AND (Leagues.LeagueId = @LId) AND (ScheduleWeekTimeField.wee k >= @wk) ORDER BY ScheduleWeekTimeField.date , Fields.FieldId DESC"
UpdateCommand="UPDATE ScheduleTeams SET ScheduleId =, TeamIdWon = @TeamWonId, TeamIdLost = @TeamLostId WHERE (ScheduleId = @ScheduleId)">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" DefaultValue="1" Name="LId"
PropertyName="SelectedValu e" />
<asp:ControlParameter ControlID="DropDownList2" DefaultValue="1" Name="wk"
PropertyName="SelectedValu e" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="TeamWonId" />
<asp:Parameter Name="TeamLostId" />
<asp:Parameter Name="ScheduleId" />
</UpdateParameters>
</asp:SqlDataSource>
protected void ButtonUpdateWins_Click(obj ect sender, EventArgs e)
{
CheckBox cb;
string ScheduleId;
string Team1WonId;
string Team2LostId;
Boolean gotacheck = false;
// Iterate through the Products.Rows property
foreach (GridViewRow row in GridViewScheduleEditWinner s.Rows)
{
// Access the CheckBoxs
cb = (CheckBox)row.FindControl( "Team1Won" );
if (cb != null && cb.Checked)
{
gotacheck = true;
Team1WonId = GridViewScheduleEditWinner s.DataKeys [row.RowIn dex].Value s[0].ToStr ing();
Team2LostId = GridViewScheduleEditWinner s.DataKeys [row.RowIn dex].Value s[1].ToStr ing();
ScheduleId = GridViewScheduleEditWinner s.DataKeys [row.RowIn dex].Value s[2].ToStr ing();
}
cb = (CheckBox)row.FindControl( "Team2Won" );
if (cb != null && cb.Checked)
{
gotacheck = true;
Team1WonId = GridViewScheduleEditWinner s.DataKeys [row.RowIn dex].Value s[1].ToStr ing();
Team2LostId = GridViewScheduleEditWinner s.DataKeys [row.RowIn dex].Value s[0].ToStr ing();
ScheduleId = GridViewScheduleEditWinner s.DataKeys [row.RowIn dex].Value s[2].ToStr ing();
}
What do i do here to update the database?
}
<asp:GridView ID="GridViewScheduleEditWi
AutoGenerateColumns="False
DataSourceID="SqlDataSourc
BorderWidth="1px" CellPadding="4" EmptyDataText="Data is Not Available" ForeColor="Black"
GridLines="Vertical" AllowPaging="True"
onrowdatabound="GridView1_
DataKeyNames="Team1Id,Team
<RowStyle BackColor="#F7F7DE" />
<Columns>
<asp:BoundField DataField="Team1Id" HeaderText="Team1Id"
ShowHeader="False" SortExpression="Team1Id" Visible="False" />
<asp:BoundField DataField="Team2Id" HeaderText="Team2Id"
SortExpression="Team2Id" ShowHeader="False" Visible="False" />
<asp:BoundField DataField="date" HeaderText="Date" SortExpression="date"
DataFormatString="{0:MMMM dd}" />
<asp:BoundField DataField="date" HeaderText="Time" SortExpression="date"
DataFormatString="{0:h:mm tt}" />
<asp:BoundField DataField="Name" HeaderText="Field" SortExpression="Name" />
<asp:BoundField DataField="Team1Name" HeaderText="Team1Name"
SortExpression="Team1Name"
<asp:TemplateField HeaderText="Won">
<ItemTemplate>
<asp:CheckBox ID="Team1Won" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Team2Name" SortExpression="Team2Name"
HeaderText="Team2Name" />
<asp:TemplateField HeaderText="Won">
<ItemTemplate>
<asp:CheckBox ID="Team2Won" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#CCCC99" />
<PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
<SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:CISoftba
SelectCommand="SELECT Leagues.Year, Leagues.LeagueId, ScheduleWeekTimeField.date
UpdateCommand="UPDATE ScheduleTeams SET ScheduleId =, TeamIdWon = @TeamWonId, TeamIdLost = @TeamLostId WHERE (ScheduleId = @ScheduleId)">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" DefaultValue="1" Name="LId"
PropertyName="SelectedValu
<asp:ControlParameter ControlID="DropDownList2" DefaultValue="1" Name="wk"
PropertyName="SelectedValu
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="TeamWonId" />
<asp:Parameter Name="TeamLostId" />
<asp:Parameter Name="ScheduleId" />
</UpdateParameters>
</asp:SqlDataSource>
protected void ButtonUpdateWins_Click(obj
{
CheckBox cb;
string ScheduleId;
string Team1WonId;
string Team2LostId;
Boolean gotacheck = false;
// Iterate through the Products.Rows property
foreach (GridViewRow row in GridViewScheduleEditWinner
{
// Access the CheckBoxs
cb = (CheckBox)row.FindControl(
if (cb != null && cb.Checked)
{
gotacheck = true;
Team1WonId = GridViewScheduleEditWinner
Team2LostId = GridViewScheduleEditWinner
ScheduleId = GridViewScheduleEditWinner
}
cb = (CheckBox)row.FindControl(
if (cb != null && cb.Checked)
{
gotacheck = true;
Team1WonId = GridViewScheduleEditWinner
Team2LostId = GridViewScheduleEditWinner
ScheduleId = GridViewScheduleEditWinner
}
What do i do here to update the database?
}
After taking out values
if (cb != null && cb.Checked)
{
gotacheck = true;
Team1WonId = GridViewScheduleEditWinner s.DataKeys [row.RowIn dex].Value s[0].ToStr ing();
Team2LostId = GridViewScheduleEditWinner s.DataKeys [row.RowIn dex].Value s[1].ToStr ing();
ScheduleId = GridViewScheduleEditWinner s.DataKeys [row.RowIn dex].Value s[2].ToStr ing();
}
you can update it
I didn't get ur point
if (cb != null && cb.Checked)
{
gotacheck = true;
Team1WonId = GridViewScheduleEditWinner
Team2LostId = GridViewScheduleEditWinner
ScheduleId = GridViewScheduleEditWinner
}
you can update it
I didn't get ur point
I am also noticing that you left ScheduleId = without parameters in the below code,......
UpdateCommand="UPDATE ScheduleTeams SET ScheduleId =, TeamIdWon = @TeamWonId, TeamIdLost = @TeamLostId WHERE (ScheduleId = @ScheduleId)">
your update should be
UpdateCommand="UPDATE ScheduleTeams SET ScheduleId = @ScheduleId, TeamIdWon = @TeamWonId, TeamIdLost = @TeamLostId WHERE (ScheduleId = @ScheduleId)">
UpdateCommand="UPDATE ScheduleTeams SET ScheduleId =, TeamIdWon = @TeamWonId, TeamIdLost = @TeamLostId WHERE (ScheduleId = @ScheduleId)">
your update should be
UpdateCommand="UPDATE ScheduleTeams SET ScheduleId = @ScheduleId, TeamIdWon = @TeamWonId, TeamIdLost = @TeamLostId WHERE (ScheduleId = @ScheduleId)">
ASKER
Thanks Tony
My question is how do i send the update command to the database to do the update?
My question is how do i send the update command to the database to do the update?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
no comment
ASKER
My last comment was the only one that answered by problem
UpdateCommand="UPDATE ScheduleTeams SET ScheduleId =, TeamIdWon = @TeamWonId, TeamIdLost = @TeamLostId WHERE (ScheduleId = @ScheduleId)">
is what you are sending to the database to update , what fields are you tring to update?