[C#] Zkontrolovat kod
Dobrý den, potřeboval bych zkontrolovat kod, v Javě bych to sepsal takhle:
public HashMap<String, String> list = new HashMap<String, String>();
try {
ResultSet rs = mysql.query("SELECT * FROM FreeLance_RADA");
while (rs.next()) {
String hrac = rs.getString("hrac");
String hlas= rs.getString("hlas");
list.put(hrac, hlas);
}
} catch (SQLException e) {
log.info("Problem v void 'onEnable' - FreeLance_RADA");
e.printStackTrace();
}
for (String hrac : list.keySet()) {
String hlas = list.get(hrac);
String query = "SELECT hlas FROM FreeLance_INFO WHERE hrac = '" + hrac + "'";
ResultSet rs;
try {
rs = mysql.query(query);
if (!rs.equals(hrac)) {
mysql.query("INSERT INTO FreeLance_RADA (hrac, hlas) VALUES ('" + hrac + "', '" + hlas + "')");
if(config.getBoolean("debug"))
log.info(hrac + " prideluji hlas " + hlas);
}
} catch (SQLException e) {
log.info("Problem v 'onEnable - hlas'");
e.printStackTrace();
}
}
v C# takhle:
public List<String> odpovedi = new List<String>();
public String Hrac;
public String Hlas = null;
private void onClickObnovit(object sender, EventArgs e)
{
using (MySqlConnection pripojeni = new MySqlConnection("xxxx"))
{
pripojeni.Open();
using (MySqlCommand prikaz = new MySqlCommand("SELECT * FROM FreeLance_RADA", pripojeni))
{
MySqlDataReader cteni = prikaz.ExecuteReader();
while (cteni.Read())
{
Hrac = cteni.GetString("Jmeno");
if (!cteni.GetString("Hlas").Contains("nic"))
{
Hlas = cteni.GetString("Hlas");
}
else
{
Hlas = "nic";
}
odpovedi.Add(Hrac + "|" + Hlas);
}
}
}
}
private void onClickUlozit(object sender, EventArgs e)
{
string log = @"C:\FreeLanceRADA_" + textBox1.Text + "_.txt";
using (FileStream fs = new FileStream(log, FileMode.Create))
{
using (StreamWriter sw = new StreamWriter(fs))
{
foreach (string line in odpovedi)
{
String znak = "\\|";
String[] slovo = line.Split(Convert.ToChar(znak));
sw.Write(line + sw.NewLine);
sw.Write("Uživatel: " + slovo[1] + " Hlasoval: " + slovo[2]);
}
}
}
}
Bude to v C# Fungovat ?
To co mě mate je smyčka, v javě jí udělám přes for (blablabla)
ale v C# je to něco jiného, tak jako foreach..
Jakej je vlastně rozdíl mezi for a foreach ?
Potom u Javy je mezi for Dvojtečka, což u C# vůbec neexistuje.
Potřebuju zapsat do souboru veškeré uživatele které jsou v 'list' 'odpovedi'
Pak bych se chtěl zeptat jestli u C# neexistuje HashMap, nebo něco podobného ?
Abych to nemusel dělat přes List<String>, a potom rozdělovat.
///////////////////
Error dostávám na:
String[] slovo = line.Split(Convert.ToChar(znak));
Když jsem přepsal
String znak = "\\|";
na
String znak = "|";
Dostal jsem error na dalším řádku:
sw.Write("Uživatel: " + slovo[1] + " Hlasoval: " + slovo[2]);
Error dostávám na:
String[] slovo = line.Split(Convert.ToChar(znak));
Když jsem přepsal
String znak = "\\|";
na
String znak = "|";
Dostal jsem error na dalším řádku:
sw.Write("Uživatel: " + slovo[1] + " Hlasoval: " + slovo[2]);
Fakt vás na to nic nenapadá ?
//Edit Dělám to přes Hashtable. Vygooglil jsem funkce a zkouším.
IDictionaryEnumerator en = odpovedi.GetEnumerator();
String[] slovo = line.Split('|');
sw.Write("Uživatel: " + slovo[0] + " Hlasoval: " + slovo[1]);