我正在尝试将记录从SQL数据库插入到Access表中。当我单步执行时,我添加了5行但是当我完成时,行不在表中。我知道我错过了一些简单的事情,但我肯定无法弄明白。
OdbcConnection ocn = new OdbcConnection
("Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\my.mdb;Uid=Admin;Pwd=;");
ocn.Open();
OdbcDataAdapter adapter = new OdbcDataAdapter
(@"SELECT * FROM FROM Nodes Order by Node ASC", ocn);
da.InsertCommand = new OdbcCommand(@"INSERT INTO NODES(Node,Descriptor,NDisabled,GroupNum,LocalAddress
TurnOffPolling,CommOffSig,MaintSig,CollectAuditSig,SkipHistory,KeepAwake,DialUp,KeepAwakeDate,ModelNumber)
VALUES(@Node,@Descriptor,@NDisabled,@Groupnum,@LocalAddress,
@TurnOffPolling,@CommOffSig,@maintSig,@CollectAuditSig,@SkipHistory,@KeepAwake,@DialUp,@KeepAwakeDate,@ModelNumber)", ocn);
da.InsertCommand.Parameters.Add("@Node", OdbcType.VarChar);
da.InsertCommand.Parameters.Add("@Description", OdbcType.VarChar);
da.InsertCommand.Parameters.Add("@NDisabled", OdbcType.Bit);
da.InsertCommand.Parameters.Add("@GroupNum", OdbcType.Int);
da.InsertCommand.Parameters.Add("@LocalAddress", OdbcType.Int);
da.InsertCommand.Parameters.Add("@TurnOffPolling", OdbcType.Bit);
da.InsertCommand.Parameters.Add("@CommOffSig", OdbcType.VarChar);
da.InsertCommand.Parameters.Add("@MaintSig", OdbcType.VarChar);
da.InsertCommand.Parameters.Add("@CollectAuditSig", OdbcType.VarChar);
da.InsertCommand.Parameters.Add("@SkipHistory",OdbcType.Bit);
da.InsertCommand.Parameters.Add("@KeepAwake",OdbcType.Bit);
da.InsertCommand.Parameters.Add("@DialUp",OdbcType.Bit);
da.InsertCommand.Parameters.Add("@KeepAwakeDate",OdbcType.VarChar);
da.InsertCommand.Parameters.Add("@ModelNumber",OdbcType.Int);
DataTable tbl = new System.Data.DataTable();
adapter.Fill(tbl);
while(SqlDataReader.Read())
{
DataRow nrow = tbl.NewRow();
nrow["Node"] = rdr["Node"];
tbl.Rows.Add(nrow); //I see the tbl.Rows.Count increase by one here
}
tbl.AcceptChanges();
adapter.Update(tbl);
ocn.Close();
当我打开表格时,记录不在表格中。有人可以告诉我,我在这里做错了吗?
提前致谢, 鲍勃
答案 0 :(得分:0)
变化:
tbl.AcceptChanges();
adapter.Update(tbl);
到
adapter.Update(tbl);
tbl.AcceptChanges();
我没有看到您向OdbcDataAdapter
提供InsertCommand
(或UpdateCommand
或DeleteCommand
)的位置,以执行数据库表的propper更新。