this.OpenAccess();
OleDbCommand cmd = new OleDbCommand();
adapter = new OleDbDataAdapter();
cmd.Connection = this.conn;
cmd.CommandText = "SELECT * FROM Class";
adapter.SelectCommand = cmd;
adapter.Fill(dataAccess, "Class");
上述这段代码是把表CLASS的内容填充到DataSet(即dataAccess)的DataTable["Class"]中
现在我要用adapter添加一条记录
但是问题是表Class中的字段ClassId是自动编号
那么我应该怎么办呢
表CLASS有2个字段 ClassId和ClassName(PS:是Access数据库)
OleDbCommand cmd = new OleDbCommand();
adapter = new OleDbDataAdapter();
cmd.Connection = this.conn;
cmd.CommandText = "SELECT * FROM Class";
adapter.SelectCommand = cmd;
adapter.Fill(dataAccess, "Class");
上述这段代码是把表CLASS的内容填充到DataSet(即dataAccess)的DataTable["Class"]中
现在我要用adapter添加一条记录
但是问题是表Class中的字段ClassId是自动编号
那么我应该怎么办呢
表CLASS有2个字段 ClassId和ClassName(PS:是Access数据库)
添加记录后还要得到刚才添加的记录的ClassId
比如 我想向DataTable["Class"]添加一条记录
然后通过DataAdapter来执行向数据库添加记录
最后呢 还要返回刚才添加的记录的ID
因为表CLASS有2个字段 ClassId 和 ClassName
ClassId是自动编号
adapter.SelectCommand = cmd;
adapter.Fill(dataAccess, "Class");
这就把当前数据库中表Class的所有内容填充到了DataSet中了
lz如果意思是要向数据库中添加记录的话conn.open();cmd.CommandText = "insert into Class(ClassName) values(" +"aaa"+")"; cmd.ExecuteNonQuery();
conn.close();
自增字段 用户不用关心 数据库会自己给你加的
用户也无法关心 因为该列不可编辑
-----------------------------------------------------------
恩 按你这么说
好像在添加这一步是无法通过象DataTable添加记录 然后通过DataAdapter来更新数据库
因为DataTable中的ClassId是自动编号
SELECT ClassName From Class WHERE ClassId=1
这个我知道肯定就返回一个值是 ClassName
那么执行
cmd.ExecuteNonQuery()或者别的方法
有没有哪种方法是返回一个值
好像都是返回 DataTable或DataSet的
好像在添加这一步是无法通过象DataTable添加记录 然后通过DataAdapter来更新数据库
因为DataTable中的ClassId是自动编号
使用DS来更新数据库当然是可以的 我的意思是说 你不用去管那个自增字段 不要在程序中给他赋值 提交到数据库中数据库会自动给你处理的
to 恩 按你这么说
好像在添加这一步是无法通过象DataTable添加记录 然后通过DataAdapter来更新数据库
因为DataTable中的ClassId是自动编号
使用DS来更新数据库当然是可以的 我的意思是说 你不用去管那个自增字段 不要在程序中给他赋值 提交到数据库中数据库会自动给你处理的
-----------------------------------------------
能不能给段Demo呢
还有个要求 我还要得到刚才添加的这个记录的ID