0
ハンドラからmongoDBに(一見)書き込みできません。 私はコードを除去し、それが動作主でコンソールアプリでそれを実行すると...ハンドラから呼び出されたとき、MongoDBは挿入/保存を受け取りません。
ここでクラスが
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:それをハンドラから取り出して、それ自身のクラスに入れて、それを動作させます。まだ何故か分からない。
ハンドラから機能しないときにエラーが発生しましたか?スタックトレースはありますか? –
what-so-everエラーはありません。しかし、SaveResultはnullを返すので、saveメソッドを呼び出せないように見えます。私は今それをハンドラ(saveClass)から取り出して、うまく動作します。 – JHN
@JHN:コンソールアプリケーションの実行後にデータベースにあるものを表示できますか?また、コンソールアプリケーションを2回実行し、データベース内の2つのレコードを表示できますか? –