我要做的是:
使用SSCE
和命令按钮将DML语句执行到数据库(Datagridview
)。
问题:
基于这些答案以及网络上提供的其他答案,我已经验证了查询字符串,但却无法解决。还有另外一个方面我怀疑。
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中的新行/更新/删除行插入数据库表。这是有效的方式吗?
对正确方向的一些见解表示赞赏。
答案 0 :(得分:0)
我设法让它解决了。我不相信回答我自己的问题。刚刚添加了希望别人在将来参考的答案。
1)i
变量指的是datagridview
中的空行...因此要插入的值为空,并指定这些列NOT 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();
}
}