ycwong99 Ответов: 0

Найдите значение в gridview с помощью findcontrol и совместите его с данными в базе данных


<pre> protected void LinkButton_Click(Object sender, EventArgs e)
        {
            String MyConnection2 = "Server=localhost;database=ovs;Uid=root;password=; Convert Zero Datetime=True";
            DateTime time = DateTime.Now;              // Use current time
            string format = "yyyy-MM-dd HH:mm:ss";
            string UserName4 = HttpContext.Current.User.Identity.Name;
            GridViewRow grdrow = (GridViewRow)((LinkButton)sender).NamingContainer;
            Label lblStudentId = (Label)grdrow.Cells[0].FindControl("lblID");
            string studentId = lblStudentId.Text;
            String query = "insert into voting (CandidateStudentID,voterStudentID,DateTime)values ('" + lblStudentId.Text + "','" + Session["UserName"].ToString() + "','" + time.ToString(format) + "')";
            foreach (GridViewRow row in GridView2.Rows)
            {
                Label lblVoter = row.FindControl("lblVoter") as Label;
                string voterID = lblVoter.Text;


                if (Session["UserName"].ToString().Equals(lblVoter.Text))
                {
                    Label1.Text = "You voted before";

                }

            }
            MySqlConnection MyConn2 = new MySqlConnection(MyConnection2);
            MySqlCommand MyCommand2 = new MySqlCommand(query, MyConn2);
            MySqlDataReader MyReader2;
            MyConn2.Open();
            MyReader2 = MyCommand2.ExecuteReader();
            Label2.Text = "Thank you for You Vote";

        }
  <asp:GridView ID="GridView2" runat="server"  AutoGenerateColumns="False" Font-Size="Medium">
          <Columns>
          <asp:TemplateField HeaderText="Student ID">
  <ItemTemplate>
     <asp:Label ID="lblVoter" runat="server"   Width="150px"  Text='<%#Eval("voterStudentID") %>'/>
 </ItemTemplate>
 </asp:TemplateField>
              
          </Columns>
       </asp:GridView>


 protected void loadCandidate()
    {
        con.Open();
        MySqlCommand cmd = new MySqlCommand("select studentID ,name from candidate  ", con);
        MySqlDataReader dr = cmd.ExecuteReader();
        if (dr.HasRows == true)
        {
            GridView1.DataSource = dr;
            GridView1.DataBind();
            con.Close();

            con.Open();
            MySqlCommand cmd2 = new MySqlCommand("select voterStudentID from voting  ", con);
            MySqlDataReader dr2 = cmd2.ExecuteReader();

            GridView2.DataSource = dr2;
            GridView2.DataBind();
        }
    }


Что я уже пробовал:

The error message and successful inserted message are display at the same time. The duplicated of the vote are allowed even though Session["UserName"] is equal to lblVoter.Text

Richard MacCutchan

Какое сообщение об ошибке и где оно возникает?

0 Ответов