2017-11-12 8 views
0

DataTableのDataGridViewストアデータは、SQLデータベースから取得します。このステップは何もエラーではありません。しかし、DataGridViewのすべてのデータをListViewに取得しようとすると、「追加情報:オブジェクト参照がオブジェクトのインスタンスに設定されていません」というメッセージが常に表示されます。コードラインを実行すると、リストビューにデータを追加します。DataGridViewビューの値を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; 
        }       
      } 
     } 
    } 

答えて

0

Visual Studioを使用している場合は、その行にブレークポイントを置き、各プロパティの上にマウスを置いて、いずれかのプロパティがnullであるかどうかを確認します。

+0

私はブレークポイントを置き、デバッグを試みます。しかし、それは意味がありません。すべてがうまくいっていて、どこでもヌルではありません。 –

0

この問題の解決策は、DataGridViewのAllowUserToAddRowsプロパティをfalseにするだけです。

関連する問題