C# 从datagridview到SSCE的DML查询执行

C# 从datagridview到SSCE的DML查询执行,c#,datagridview,sql-server-ce,dml,C#,Datagridview,Sql Server Ce,Dml,我想做什么: 使用Datagridview和命令按钮将DML语句执行到数据库(SSCE) 问题: 我收到的错误与此帖子完全相同: 基于这些答案和web上的其他可用答案,我已经验证了查询字符串,但无法解决它。还有一个方面我有疑问 private void button2_Click(object sender, EventArgs e) { using (SqlCeConnection CONN = new SqlCeConnection("Data

我想做什么:

使用
Datagridview
和命令按钮将DML语句执行到数据库(
SSCE

问题:

我收到的错误与此帖子完全相同:

基于这些答案和web上的其他可用答案,我已经验证了查询字符串,但无法解决它。还有一个方面我有疑问

private void button2_Click(object sender, EventArgs e)
        {
            using (SqlCeConnection CONN = new SqlCeConnection("Data 
                                          Source=LocalDBSSCompactEdition.sdf;"))
            {
                SqlCeCommand comm = new SqlCeCommand();
                comm.Connection = CONN;
                CONN.Open();
                int i = dataGridView2.Rows.Count-1;

                    String queryString = @"INSERT INTO tblEmployee VALUES ("
                    + dataGridView2.Rows[i].Cells["E_ID"].Value + ", "
                    + dataGridView2.Rows[i].Cells["FirstName"].Value + ", "
                    + dataGridView2.Rows[i].Cells["LastName"].Value + ", "
                    + dataGridView2.Rows[i].Cells["DeptID"].Value + ");";
                    comm.CommandText = queryString;
                    comm.ExecuteNonQuery();

            }
        }
1)
E_ID
列为
IDENTITY
(自动递增)。但是,我得到了一个错误,即我必须包含DataGridview中的所有列才能与数据库表匹配。这可能是我遇到的问题,还是我的语法问题

2) 我想使用按钮单击事件将新行/更新/删除的行从Datagridview插入数据库表。这样做是否有效


对正确方向的一些见解是值得赞赏的。

我设法解决了这个问题。我不相信回答我自己的问题。只是添加了答案,希望将来有人参考

1)
i
变量引用了
datagridview
中的一个空行。因此,要插入的值为null,并且这些列被指定为
非null

2) 第一条规则是当ID列为自动递增时,遵循通常的
INSERT
语句。因此,我指定要为其插入数据的列

3) 我输入的数据没有被引用为
String
。固定的

private void button2_Click(object sender, EventArgs e)
        {
            using (SqlCeConnection CONN = new SqlCeConnection("Data Source=LocalDBSSCompactEdition.sdf;"))
            {
                CONN.Open();
                SqlCeCommand comm = CONN.CreateCommand();                
                int i = dataGridView2.Rows.Count-1;

                    String queryString = @"INSERT INTO tblEmployee (FirstName, LastName, DeptID) VALUES ('"                    
                    + dataGridView2.Rows[5].Cells["FirstName"].Value + "','"
                    + dataGridView2.Rows[5].Cells["LastName"].Value + "',"
                     + dataGridView2.Rows[5].Cells["DeptID"].Value + ");";
                    comm.CommandText = queryString;
                    comm.ExecuteNonQuery();
                    CONN.Close();    
            }
        }