2017-11-12 1 views
0

setzen Ich habe eine DataGridView-Speicherdaten von DataTable aus SQL-Datenbank abrufen. Dieser Schritt ist kein Fehler. Aber wenn ich versuche, alle Daten in DataGridView in ListView zu bekommen, sage es immer: "Zusätzliche Information: Objektreferenz nicht auf eine Instanz eines Objekts gesetzt." Wenn Sie zur Codezeile laufen, fügen Sie Daten zur Listenansicht hinzu.Wie Werte der Datagridview-Ansicht zu Listview C#

using System; 
    using System.Collections.Generic; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Data.SqlClient; 
    using System.Drawing; 
    using System.Linq; 
    using System.Text; 
    using System.Threading.Tasks; 
    using System.Windows.Forms; 

    namespace Sample_SignIn 
    { 
     public partial class game : Form 
     { 
      SqlConnection con; 
      public game() 
      { 
       InitializeComponent(); 
       con = new SqlConnection("Data Source=192.168.100.49;Initial Catalog=Chatlan;User ID=sa;Password=sa2014"); 
      } 

      private void game_Load(object sender, EventArgs e) 
      { 

        if (con.State == ConnectionState.Closed) 
        { 
         con.Open(); 
        } 

       DataTable dtbl = new DataTable(); 
       String str = "select CauHoi from CauHoi"; 
       SqlCommand cmd = new SqlCommand(str, con); 

       SqlDataAdapter sqldata = new SqlDataAdapter(str, con); 

       sqldata.Fill(dtbl); 
       dataGridView1.DataSource = dtbl; 

       foreach (DataGridViewRow row in dataGridView1.Rows) 
       { 
        foreach (DataGridViewCell cell in row.Cells) 
        { 
//This line make an error "Additional information: Object reference not set to an instance of an object" 
         listView1.Items.Add(cell.Value.ToString()); 
        } 
       }            
       if (con.State == ConnectionState.Open) 
        { 
         con.Close(); 
         return; 
        }       
      } 
     } 
    } 

Antwort

0

Wenn Sie Visual Studio verwenden, auf dieser Linie einen Haltepunkt setzen, mit der Maus über jede Eigenschaft schweben und prüfen, ob eine der Eigenschaften null ist.

+0

Ich legte einen Haltepunkt und versuchen, debuggen. Aber ... es macht keinen Sinn. Alles in Ordnung und nicht null wo .. –

0

Die Lösung für dieses Problem ist nur die DataGridView AllowUserToAddRows-Eigenschaft auf false setzen.