ich bereits debug, ich herausgefunden habe, dass, sobald ich alle Felder ausfüllen, autmatically eine neue Zeile leer erzeugen, und sobald es in der dabase gespeichert wird, ist es mit der Schleife foreach folgen und automatisch erfassen Nullreferenz das ist ein Bild, ich hoffe du verstehst mich img8.imageshack.us/i/error3xh.jpg
Ich brauche deine Hilfe, ich kann die Ausnahme nicht kontrollieren, hier ist meine Methode und der Fehler sagen System .NullReferenceException: Objektreferenz nicht auf eine Instanz eines Objekts gesetzt ", wie kann ich es beheben, steuern die Ausnahme, keine weiteren Nachrichten dieses Typs ?, egal wie seine Struktur: der Fehler ist die Zeile ** if (combo3 == null || combo4 == null) **
private void btnCronograma_Click(object sender, EventArgs e)
{
string connstring = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\amaury\\Documents\\TEC\\Septimo Semestre\\Administracion de proyectos de ingenieria de softwaere\\nuevo4\\nuevo\\Office\\Office\\Policias.accdb";
using (OleDbConnection conn = new OleDbConnection(connstring))
{
conn.Open();
string sql = "INSERT INTO IndicadorProyecto (idProyecto, idMes, meta, real) VALUES(@idProyecto , @idMes , @meta, @real)";
OleDbCommand cmd = new OleDbCommand(sql, conn);
foreach (DataGridViewRow row in dataGridView8.Rows)
{
DataGridViewComboBoxCell combo3 = row.Cells["idProyecto"] as DataGridViewComboBoxCell;
DataGridViewComboBoxCell combo4 = row.Cells["idMes"] as DataGridViewComboBoxCell;
if (combo3 == null || combo4 == null)
{
MessageBox.Show("No se pudo convertir");
continue;
}
int idProyecto = int.Parse(combo3.Value.ToString());
int idMes = int.Parse(combo4.Value.ToString());
int meta = int.Parse(row.Cells[3].Value.ToString());
int real = int.Parse(row.Cells[4].Value.ToString());
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@idProyecto", idProyecto);
cmd.Parameters.AddWithValue("@idMes", idMes);
cmd.Parameters.AddWithValue("@meta", meta);
cmd.Parameters.AddWithValue("@real", real);
cmd.ExecuteNonQuery();
}
}
}
dies ist die komplette Fehler
Consulte el final de este mensaje para obtener más detalles sobre cómo invocar a la depuración Just-In-Time (JIT) en lugar de a es cuadro de diálogo.
************** Texto de la Excepción ************** System.NullReferenceException: Referencia ein objeto kein establecida como instancia de un objeto. en Office.Form1.btnCronograma_Click (Object sender, EventArgs e) en C: \ Benutzer \ amaury \ Dokumente \ TEC \ Septimo Semestre \ Administracion de proyectos de Ingenieria de softwaere \ nuevo4 \ nuevo \ Office \ Office \ Form1.cs: línea 726 en System.Windows.Forms.Control.OnClick (EventArgs e) en System.Windows.Forms.Button.OnClick (EventArgs e) en System.Windows.Forms.Button.OnMouseUp (MouseEventArgs mevent) de System.Windows.Forms.Control.WmMouseUp (Nachricht & m, Maustasten-Taste, Int32 Klicks) en System.Windows.Forms.Control.WndProc (Message & m) en System.Windows.Forms.ButtonBase.WndProc (Message & m) en System.Windows.Forms.Button.WndProc (Message & m) en System.Windows.Forms.Control.ControlNativeWindow.OnMessage (Message & m) en System.Windows.Forms.Control.ControlNativeWindow.WndProc (Message & m) en System.Windows.Forms.NativeWindow. Callback (IntPtr hWnd, Int32 Nachricht, IntPtr wParam, IntPtr lparam)
Welche Zeile gibt den Fehler? Ich vermute eine der "int.Parse" Zeilen. – ChrisF
der Fehler ist in der Zeile if (Combo3 == null || combo4 == null) – peggalvan
Ich lösche diese Zeile und die erros sagen ist in foreach (DataGridViewRow Zeile in DataGridView8.Rows), weiß ich nicht – peggalvan