![](/img/trans.png)
[英]How to update database by selecting datagridview row and an update button
[英]How to update a record of certain column of one row by selecting via radiobutton and pressing a button
我想在選擇單選按鈕后更新gridview中選定行的列。 例如,我有帶有ID,名稱,地址,電子郵件,電話,狀態等的Candidiate表。一旦選擇單選按鈕,它將與ID關聯。 然后,基於ID,我想更改為“狀態”列分配“ Y”或“ N”的記錄。 我已經實現了用ID綁定單選按鈕。 在那之后,我迷路了以正確的記錄行標識ID。 請幫助我提供示例代碼。
預先感謝。 Joe下面是我的html代碼。
<asp:GridView ID="gvCandidates" runat="server" AutoGenerateColumns="False"
BackColor="Green" BorderColor="#CC9966" BorderStyle="None" AlternatingRowStyle-BackColor = "#C2D69B"
BorderWidth="1px" CellPadding="4" AllowPaging = "true">
<Columns>
<asp:TemplateField HeaderText="Select One">
<ItemTemplate>
<input name="SelectedRadioButton" type="radio"
value='<%# Eval("CANDIDATE_ID") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="CANDIDATE_ID" HeaderText="CANDIDATE_ID"
SortExpression="CANDIDATE_ID" />
<asp:BoundField DataField="CANDIDATE_NAME" HeaderText="CANDIDATE_NAME"
SortExpression="CANDIDATE_NAME" />
<asp:BoundField DataField="CANDIDATE_ADDRESS1" HeaderText="CANDIDATE_ADDRESS1"
SortExpression="CANDIDATE_ADDRESS1" />
<asp:BoundField DataField="CANDIDATE_PHNO" HeaderText="CANDIDATE_PHNO"
SortExpression="CANDIDATE_PHNO" />
<asp:BoundField DataField="CANDIDATE_EMAIL_ADDRESS"
HeaderText="CANDIDATE_EMAIL_ADDRESS" SortExpression="CANDIDATE_EMAIL_ADDRESS" />
<asp:BoundField DataField="CANDIDATE_STATUS" HeaderText="CANDIDATE_STATUS"
SortExpression="CANDIDATE_STATUS" />
</Columns>
</asp:GridView>
下面是我的C#代碼。
protected void btnAccepted_Click(object sender, EventArgs e)
{
string CStatus = "Y";
string selectedValueID = Request.Form["SelectedRadioButton"];
lblMsgStatus.Visible = true;
lblMsgStatus.Text = selectedValueID;
compCon = new SqlConnection(strConnectionString);
compCon.Open();
string UpdateQuery = @"UPDATE CandidateDetails SET CANDIDATE_STATUS='Y' WHERE CANDIDATE_ID='@selectedValueID'";
SqlCommand UpdateCandidateCommand = new SqlCommand(UpdateQuery, compCon);
UpdateCandidateCommand.Connection = compCon;
UpdateCandidateCommand.ExecuteNonQuery();
compCon.Close();
}
您應該使用:
string UpdateQuery = @"UPDATE CandidateDetails SET CANDIDATE_STATUS='Y' WHERE CANDIDATE_ID IN ( [SELECTED VALUES]);
並且為了[SELECTED VALUES],您應該放置逗號分隔的值
例如(1,2,4,7,9)或('a','f','amita','david')
如下所示,您可以獲取ID,如“測試”按鈕單擊所示:
<asp:GridView ID="gv" AllowPaging="True" PageSize="10" runat="server" AutoGenerateColumns="false" OnRowDataBound="gv_RowDataBound"
DataKeyNames="TestId">
<Columns>
<asp:BoundField HeaderText="Test" DataField="TestId" />
<asp:TemplateField>
<ItemTemplate>
<asp:RadioButton ID="rbtn1" runat="server" Text="Yes" />
<asp:RadioButton ID="rbtn2" runat="server" Text="No" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button ID="btnTest" runat="server" Text="Test" OnClick="btnTest_Click" />
protected void btnTest_Click(object sender, EventArgs e)
{
foreach (GridViewRow gvrow in gv.Rows)
{
string theDataKey = gv.DataKeys[gvrow.RowIndex].Value.ToString();//Id field
RadioButton rbtn1 = gvrow.FindControl("rbtn1") as RadioButton;
RadioButton rbtn2 = gvrow.FindControl("rbtn2") as RadioButton;
string YesNo = "N";//set default value
if(rbtn1.Checked)
YesNo = "Y";
else if(rbtn2.Checked)
YesNo = "N";
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.