2016-06-24 30 views
0

Ich bin eine Anwendung erstellen, wo Daten in Access-Tabelle mit DataGridView eingefügt werden. Das Problem ist, dass zwei Wert (e) richtig eingelegt, aber wenn ich versuche, numerischen Wert einfügen wird es als 0.Numerischer Wert als 0 in AccessDatenbank einfügen

private void dataGridView1_RowLeave(object sender, DataGridViewCellEventArgs e) 
{ 
    try 
    { 
     if (dataGridView1.IsCurrentRowDirty) 
     { 
      string connectionString = ConfigurationManager.ConnectionStrings["AccessConnectionString"].ConnectionString; 
      con.ConnectionString = connectionString; 

      string cmd1 = "insert into Medicine_Available_Detail([Medicine_Name],[Dealer_name],[total_available])values(?,?,?)"; 
      OleDbCommand cmd = new OleDbCommand(cmd1, con); 

      cmd.CommandType = CommandType.Text; 

      string Medicine_Name = dataGridView1.Rows[e.RowIndex].Cells["Medicine_Name"].Value.ToString(); 
      cmd.Parameters.AddWithValue("@Medicine_Name", Medicine_Name); 

      string Dealer_name = dataGridView1.Rows[e.RowIndex].Cells["Dealer_name"].Value.ToString(); 
      cmd.Parameters.AddWithValue("@Dealer_name", Dealer_name); 

      int Availability; 
      bool total_availableHasValue = int.TryParse(dataGridView1.Rows[e.RowIndex].Cells["total_available"].Value.ToString(), out Availability); 
      cmd.Parameters.AddWithValue("@total_available", Availability); 

      con.Open(); 
      int n = cmd.ExecuteNonQuery(); 
      con.Close(); 
      if (n > 0) 
      { 
       MessageBox.Show("Data Inserted Successfully", "Data Inserted ", MessageBoxButtons.OK, MessageBoxIcon.Information); 
      } 
     } 
    } 
} 

enter image description here

+0

Helfen Sie sich selbst, indem Sie erklären, welche Spalten funktionieren und welche nicht - welche ist ein numerischer Wert? – dbmitch

Antwort

0

Vermutlich „Verfügbarkeit“ der numerische Wert eingefügt. Sind Sie sicher, dass der Wert von datagridview für total_available numerisch ist? Wenn dies nicht der Fall ist, ist Available = 0.

Sie könnten versuchen, total_availableHasValue nach dem Parsen oder Log/Debug zu testen, um den Inhalt der Datagridview-Zelle zu überprüfen.

+0

ich unter Code gemacht, aber immer noch in anderen Zustand und Einfügen als 0 Int Verfügbarkeit; bool total_availablehasvalue = int.TryParse (dataGridView1.Rows [e.RowIndex] .Cells ["total_available"]. Value.ToString(), out Verfügbarkeit); if (total_availablehasvalue) { cmd.Parameters.AddWithValue ("@ total_available", Verfügbarkeit); } sonst { cmd.Parameters.AddWithValue ("@ total_available", DBNull.Value); } – Atul

+0

Ok, aber was ist der tatsächliche Wert von: dataGridView1.Rows [e.RowIndex] .Cells [ "total_available"] Wert Können Sie es oder auf der Konsole debuggen.? – Grayman

+0

Grayman: ich habe Bild hinzugefügt, Ausgabe kommt nur 0 und in Null eingefügt – Atul