Я (похоже) не могу записать в mongoDB из обработчика (нажатие кнопки).Если я удаляю код и запускаю его в консольном приложении в Main, он работает ...
Вот класс
class TimeRegistration
{
public ObjectId _id { get; set; }
public string Name { get; set; }
public DateTime Date { get; set; }
public string Project { get; set; }
public string Werk { get; set; }
public string Shot { get; set; }
public double Uren { get; set; }
public string Opmerkingen { get; set; }
}
А вот тело обработчика кнопки
private void buttonLog_Click(object sender, EventArgs e)
{
string connectionString = "mongodb://localhost";
MongoServer server = MongoServer.Create(connectionString);
MongoDatabase db = server.GetDatabase("timeregistration");
var logs = db.GetCollection<TimeRegistration>("logs");
foreach( DataGridViewRow dgRow in dataGridViewLog.Rows)
{
if (dgRow.Cells[0].Value == null) continue;
TimeRegistration log = new TimeRegistration();
log.Name = Environment.UserName;
log.Date = dateTimePickerLog.Value;
if (dgRow.Cells[0].Value != null) log.Project = dgRow.Cells[0].Value.ToString();
if (dgRow.Cells[1].Value != null) log.Werk = dgRow.Cells[1].Value.ToString();
if (dgRow.Cells[2].Value != null) log.Shot = dgRow.Cells[2].Value.ToString();
if (dgRow.Cells[3].Value != null) log.Uren = Convert.ToDouble(dgRow.Cells[3].Value);
if (dgRow.Cells[4].Value != null) log.Opmerkingen = dgRow.Cells[4].Value.ToString();
logs.Save(log);//, saveOptions);
}
}
Итак, мой вопрос: почему это должно выполняться внутри главной части консольного приложения, а не внутри обработчика кнопки в моем приложении winforms.
Спасибо!
Edit1: я сделалконечно, это не проблема с брандмауэром.
Edit2: если вынуть его из обработчика в отдельный класс, это сработает.Хотя до сих пор не знаю, почему.