你帖出来的代码应该没问题的,问题都是些不注意的小细节。。是不是你原来的datatable的数据源跟插入的table是同一个表?那样的话肯定重复数据了。 还有就是你是不是在其他的方法里面根据这个方法的返回值判断插入是否成功了,如果判断了,应该先定义个bool变量,然后去判断bool变量的值, 不能直接把参数写成现在的方法,那样的话就调用2次方法了,插入的也是重复的数据。
InsertBookSpeakFor(_o);
,Book加一个构造函数,给属性赋值。把这个方法里的参数改一下
string name = dt[i]...
string id = dt[i]...
InsertBookSpeakFor(new Book(name,id))
DataTable dt = new DataTable();
Book _o = new Book();
for (int i = 0; i < dt.Rows.Count; i++)
{
_o.BookName = dt.Rows[i]["bookName"].ToString();
_o.BookID = dt.Rows[i]["bookID"].ToString();
}
InsertBookSpeakFor(_o); // 醒目
你在InsertBookSpeakFor里写循环了吧。
RE:问题补充
你照着我给的代码试过没?
你需要贴出book类和InsertBookSpeakFor的定义,给出的代码肯定没问题的
你可以用断点断在循环里面看看,不过意义不大应该
老大你应该把Book _o = new Book(); 写在循环里面,像这样
for (int i = 0; i < dt.Rows.Count; i++)
{
Book _o = new Book();
_o.BookName = dt.Rows[i]["bookName"].ToString();
_o.BookID = dt.Rows[i]["bookID"].ToString();
InsertBookSpeakFor(_o);
}
你试试呢?