Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过选择via radiobutton并按下按钮来更新一行特定列的记录_C#_Asp.net_Sql_Radio Button_Sql Update - Fatal编程技术网

C# 如何通过选择via radiobutton并按下按钮来更新一行特定列的记录

C# 如何通过选择via radiobutton并按下按钮来更新一行特定列的记录,c#,asp.net,sql,radio-button,sql-update,C#,Asp.net,Sql,Radio Button,Sql Update,我想在选择radiobutton后更新gridview中选定行的列。例如,我有一个带有ID、姓名、地址、电子邮件、电话、状态等的Candidiate表。 一旦我选择了radiobutton,它将绑定到ID。然后,根据ID,我想更改状态列被分配为“Y”或“N”的记录。我已经实现了用ID绑定radiobutton。之后,我无法用正确的记录行识别ID。 请帮我提供示例代码 先谢谢你。 乔 下面是我的html代码 <asp:GridView ID="gvCandidates" runat="se

我想在选择radiobutton后更新gridview中选定行的列。例如,我有一个带有ID、姓名、地址、电子邮件、电话、状态等的Candidiate表。 一旦我选择了radiobutton,它将绑定到ID。然后,根据ID,我想更改状态列被分配为“Y”或“N”的记录。我已经实现了用ID绑定radiobutton。之后,我无法用正确的记录行识别ID。 请帮我提供示例代码

先谢谢你。 乔 下面是我的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>
您应该使用:

string UpdateQuery = @"UPDATE CandidateDetails SET CANDIDATE_STATUS='Y' WHERE CANDIDATE_ID IN ( [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";
  }
} 

受保护的无效btnTest\u单击(对象发送方,事件参数e)
{
foreach(GridViewRow gvrow在gv.Rows中)
{
字符串theDataKey=gv.DataKeys[gvrow.RowIndex].Value.ToString();//Id字段
RadioButton rbtn1=gvrow.FindControl(“rbtn1”)作为RadioButton;
RadioButton rbtn2=gvrow.FindControl(“rbtn2”)作为RadioButton;
string YesNo=“N”//设置默认值
如果(rbtn1.选中)
YesNo=“Y”;
否则如果(rbtn2.选中)
YesNo=“N”;
}
} 

您想在选择单选按钮时更新单个记录还是在按钮接受时更新所有记录?我想在通过单选按钮选择单个记录后,通过单击接受按钮更新单个记录。您可以通过gridview循环并使用数据键,您可以获得选择的记录单选按钮,然后保存数据。嗨,法罗克,我还是不明白你想说什么。是否要我用变量名SelectedValueID替换所选值。如果是这样,它仍然不起作用。有什么想法吗。。。。非常感谢你的帮助。我只是一个asp.net的初学者。我想你想一起更新多个记录,所以你应该得到他的记录键字段(例如id)并用逗号分隔,然后把它们放在()中。明白吗?谢谢。让我试试你的代码。非常感谢,代码不起作用。在调试过程中,在数据键的字符串处,索引超出范围。似乎未读取所选行的索引。请告知。谢谢。将您的Id字段添加为Gridview的数据键:DataKeyNames=“TestId”仍不工作。在“if”语句if(rbtn.checked)处,错误显示对象未正确创建。我认为该对象在radiobutton中没有正确创建,我不知道如何创建。您为radiobutton提供了什么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";
  }
}