2017-05-22 1 views
0

Ich erstelle ein einfaches Abstimmsystem in C# mit Access Database. Ich muss den Abstimmungsstatus des Benutzers bearbeiten, nachdem er gewählt hat, und ich habe den folgenden Code. Wie kann ich den aktuell angemeldeten voterID des Benutzers verfolgen? Das muss ich in diesem WHERE VoterID=? verwenden.Wie protokolliere ich die voterID, nachdem der Benutzer auf die Schaltfläche Anmelden geklickt hat?

{ 
    conn.Open(); 

    using (var cmmand = new OleDbCommand("UPDATE tbl_voter SET VotingStatus=? WHERE VoterID=?",conn)) 
    { 
     cmmand.Parameters.AddWithValue("?", 1); 
     cmmand.Parameters.AddWithValue("?", "VoterID"); 
     cmmand.ExecuteNonQuery(); 
    } 

    conn.Close(); 
} 
+0

was meinst du mit der aktuell angemeldeten voterID? Wenn Sie sich auf den Benutzernamen der Person beziehen, die auf dem win-Betriebssystem angemeldet ist, können Sie 'System.Environment.UserName' verwenden. –

+0

woher bekommen Sie VoterID .. –

+0

@SreenathGanga von hier [link] (http: // imgur. com/a/cxo5I) Wie Sie aus der Datenbank sehen können, muss ich dieses VotingStatus-Feld jedes Mal mit einem Häkchen versehen, wenn der Benutzer auf die Schaltfläche "Abstimmen" klickt. – Theodore

Antwort

0

Da Sie Loginpage verwenden. Ich denke, dass Sie Benutzername und Kennwort von der Textbox erhalten und es dann an Datenbank senden, um es zu überprüfen.

Erstellen Sie zunächst eine statische Variable in Program.cs

public static int VoterID= 0; 

Dann, wenn Anmeldung ist Erfolgreichen die VoterID Variable mit dem voterid von loggedin Person im Anmeldeformular selbst

Program.VoterID=int.Parse (getVoteridof(txtusername.text,txtpassword.text).ToString()); 

die Methode deklariert unter

public Object getVoteridof(String username,String password) 
     { 
      Object returnValue; 
      using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ArtConnectionString"].ConnectionString.ToString())) 
      { 



       SqlCommand cmd = new SqlCommand(); 
       cmd.CommandText = "Select VoterID from tbl_voter where [email protected] and [email protected]"; 
       cmd.Parameters.AddWithValue("@param1", username); 
       cmd.Parameters.AddWithValue("@param2", password); 
       cmd.CommandType = CommandType.Text; 
       cmd.Connection = con; 
       con.Open(); 

       returnValue = cmd.ExecuteScalar(); 
      } 

      return returnValue; 
     } 

Jetzt in Ihrer Voting-Funktion

{ 
      conn.Open(); 
      using (var cmmand = new OleDbCommand("UPDATE tbl_voter SET VotingStatus=? WHERE VoterID=?",conn)) { 
      cmmand.Parameters.AddWithValue("?", 1); 
      cmmand.Parameters.AddWithValue("?", Program.VoterID); 
      cmmand.ExecuteNonQuery(); 
     } 
     conn.Close(); 
} 
+0

Ich vergaß, Ihnen zu sagen, dass ich OleDB Verbindung – Theodore

+0

verwende, gibt es einen Fehler in 'Program.VoterID = int.Parse (getVoteridof (txtusername.text, txtpassword.text)); 'es sagt, kann nicht von Objekt in String konvertieren – Theodore

+0

Aktualisierte Antwort Program.VoterID = int.Parse (getVoteridof (txtusername.text, txtpassword.text) .ToString()); –

Verwandte Themen