鍍金池/ 問答/C#  網(wǎng)絡(luò)安全  HTML/ 求教C#用DataGirdViewCell添加行出現(xiàn)Bug 集合已屬于 Data

求教C#用DataGirdViewCell添加行出現(xiàn)Bug 集合已屬于 DataGridView 控件(列已定義)該怎么解決?

不能datagridview綁定sqlite數(shù)據(jù)庫為數(shù)據(jù)源,因為需要在每一行數(shù)據(jù)前要加個復(fù)選框綁定數(shù)據(jù)源并刷新dgv的話就不能手動在每一行里加個列了。
問題button事件源碼:

    SQLiteCommand commandInsert = null;
    SQLiteCommand commandSelect = null;
    string dataBaseTableName = "FileValueNote";
    SQLiteDataReader dr = null;
    DirectoryInfo dirInfo = new DirectoryInfo(@"F:\XTLBB3D");
    private void button1_Click(object sender, EventArgs e)
    {
        SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=CeShiDatabase.sqlite;Version=3;");
        m_dbConnection.Open();
        int i = 0;
        //遍歷指定某目錄下的所有文件
        foreach (FileInfo NextFile in dirInfo.GetFiles())
        {
            i += 1;
            string sqlInsert = "insert into " + dataBaseTableName + " (Id,FileName,FileAbsolutePath) values ('" + i + "', '" + NextFile.Name + "', '" + NextFile.FullName + "')";
            commandInsert = new SQLiteCommand(sqlInsert, m_dbConnection);
            commandInsert.ExecuteNonQuery();
        }
        //遍歷指定某目錄下,所有子目錄下的所有文件
        foreach (DirectoryInfo NextDirectory in dirInfo.GetDirectories())  // 首先獲取遍歷子文件夾
        {
            foreach (FileInfo NextFile in NextDirectory.GetFiles())
            {
                i += 1;
                string sqlInsert = "insert into " + dataBaseTableName + " (Id,FileName,FileAbsolutePath) values ('" + i + "', '" + NextFile.Name + "', '" + NextFile.FullName + "')";
                commandInsert = new SQLiteCommand(sqlInsert, m_dbConnection);
                commandInsert.ExecuteNonQuery();
            }
        }
        DataGridViewColumn dgvc1 = new DataGridViewCheckBoxColumn();
        dataGridView2.Columns.Add(dgvc1);
        dgvc1.Name = "dgvc1";
        dgvc1.HeaderText = "是否刪除";
        dgvc1.DataGridView.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
        DataGridViewColumn dgvc2 = new DataGridViewTextBoxColumn();
        dataGridView2.Columns.Add(dgvc2);
        dgvc2.Name = "dgvc2";
        dgvc2.HeaderText = "序號";
        dgvc2.DataGridView.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
        DataGridViewColumn dgvc3 = new DataGridViewTextBoxColumn();
        dataGridView2.Columns.Add(dgvc3);
        dgvc3.Name = "dgvc3";
        dgvc3.HeaderText = "文件名";
        dgvc3.DataGridView.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
        DataGridViewColumn dgvc4 = new DataGridViewTextBoxColumn();
        dataGridView2.Columns.Add(dgvc4);
        dgvc4.Name = "dgvc4";
        dgvc4.HeaderText = "文件絕對路徑";
        dgvc4.DataGridView.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
        string sqlSelect = "SELECT * FROM " + dataBaseTableName + ";";
        commandSelect = new SQLiteCommand(sqlSelect, m_dbConnection);
        dr = commandSelect.ExecuteReader();
        DataGridViewRow row = new DataGridViewRow();
        int temp = 0;
        while (dr.Read())
        {
            temp += 1;
            DataGridViewCell checkBoxCell = new DataGridViewCheckBoxCell();
            row.Cells.Add(checkBoxCell);
            DataGridViewCell idCell = new DataGridViewTextBoxCell();
            idCell.Value = temp.ToString();
            row.Cells.Add(idCell);
            DataGridViewCell fileNameCell = new DataGridViewTextBoxCell();
            fileNameCell.Value = dr["FileName"].ToString();
            row.Cells.Add(fileNameCell);
            DataGridViewCell absolutePathCell = new DataGridViewTextBoxCell();
            fileNameCell.Value = dr["FileAbsolutePath"].ToString();
            row.Cells.Add(absolutePathCell);
            dataGridView2.Rows.Add(row);
        }
        MessageBox.Show("文件夾所有文件已輸出");
    }
    

圖片描述

回答
編輯回答
怣痛
DataGridView 改變一下`Id`呢、
可能多個`Id`造成了報錯
2018年4月30日 01:41