在CE上面的datagrid显示数据库(SQLITE)内容后 是无法直接进行编辑的。因此要做一个textbox来写入cell,照抄了CSDN上面的一个博客http://blog.csdn.net/aawolf/archive/2003/10/29/7537.aspx
的代码后,发现一个问题,就是无法更新到数据库。。不知道哪儿出了问题。请高手指导下:
首先连接数据库:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {            if (e.KeyCode == Keys.Enter)
            {
 try
                {
                    string datasource = @"Application\DataBase\DataBaseOut.db";
                    SQLiteConnection conn = new SQLiteConnection();
                    conn.ConnectionString = "Data Source=" + datasource + ";Pooling=true;FailIfMissing=false";
                    conn.Open();
                    string sql = "SELECT * FROM "+TaskStartForm.taskname+" WHERE Col" + colnumber.Text + "=" + "'" + inb + "'";
                    SQLiteCommand cmd = new SQLiteCommand(sql, conn);
                    sda = new SQLiteDataAdapter(cmd);
                    dst = new DataSet();
                    sda.Fill(dst,TaskStartForm.taskname);
                    //conn.Close();
                    dataGrid1.DataSource = dst.Tables[0];
                    dataGrid1.Enabled = true;
                                    }
                catch
                {
                    MessageBox.Show("datagrid显示出错");
                }下面就是照抄 CSDN上面的代码,做个txtbox,用于当点击一个cell的时候 显示出来 并且输入内容后,保存到当前的CELLprivate DataGridCell editCell; 
        private bool inEditMode = false; 
        private bool inUpdateMode = false;        private void dataGrid1_CurrentCellChanged(object sender, EventArgs e)
        {
            if (!inUpdateMode) 
            {
                if (inEditMode && !dataGrid1.CurrentCell.Equals(editCell)) 
                {      // Update edited cell   
                    inUpdateMode = true;
                    dataGrid1.Visible = false;
                    DataGridCell currentCell = dataGrid1.CurrentCell;
                    dataGrid1[editCell.RowNumber, editCell.ColumnNumber] = txtEdit.Text;
                    dataGrid1.CurrentCell = currentCell;
                    dataGrid1.Visible = true;    
                    inUpdateMode = false;  
                    txtEdit.Visible = false;  
                    inEditMode = false;   
                }     
                // Enter edit mode
                editCell = dataGrid1.CurrentCell;
                txtEdit.Text = (string)dataGrid1[editCell.RowNumber, editCell.ColumnNumber];
                Rectangle cellPos = dataGrid1.GetCellBounds(editCell.RowNumber, editCell.ColumnNumber);  
                txtEdit.Left = cellPos.Left - 1;
                txtEdit.Top = cellPos.Top + dataGrid1.Top - 1;  
                txtEdit.Width = cellPos.Width + 2;   
                txtEdit.Height = cellPos.Height + 2; 
                txtEdit.Visible = true; 
                inEditMode = true;
                
            }
        }        private void dataGrid1_MouseUp(object sender, MouseEventArgs e)
        {
            //sda.Update(dst, TaskStartForm.taskname);
            DataGrid.HitTestInfo hitTest = dataGrid1.HitTest(e.X, e.Y); 
            if (hitTest.Type == DataGrid.HitTestType.ColumnHeader)  
            {    // Exit edit mode   
                txtEdit.Visible = false;  
                inEditMode = false;   
                // Sort tapped column   
                DataTable dataTable = (DataTable)dataGrid1.DataSource;   
                DataView dataView = dataTable.DefaultView;   
                string columnName = dataTable.Columns[hitTest.Column].ColumnName;
                if (dataView.Sort == columnName)
                {
                    dataView.Sort = columnName + " DESC";
                }
                else
                {
                    dataView.Sort = columnName;
                }
                         }
        }最后我做了个button用来保存更改后的数据private void button1_Click(object sender, EventArgs e)
        {
            
            sda.Update(dst,TaskStartForm.taskname);        }这个保存按钮么得一点用呀,不知道哪儿写错了,还是根本就是都没有写保存,在线等望高手指点一下感谢,感谢~~~~