111,080
社区成员




for (int i = 0; i < listBox1.Items.Count; i++)
{
CustomerCategoryTaskList.TaskList model = listBox1.Items[0] as CustomerCategoryTaskList.TaskList;
if (!crmData.isEmailExist(model.Email, common.userName))
{
if (crmComm.addTaskListToDataBase(model, customerClass, customerClassText))
{
j++;
tsslblStatus.Text = "状态:添加" + model.Email;
listBox1.Items.Remove(model);
i--;
tsslEmailTaskListCount.Text = listBox1.Items.Count.ToString();
}
}
else
{
listBox1.Items.Remove(model);
i--;
k++;
tsslblStatus.Text = "状态:已存在" + model.Email ;
tsslEmailTaskListCount.Text = listBox1.Items.Count.ToString();
}
Thread.Sleep(0);
}
public bool isEmailExist(string CustomerEmail, string userName)
{
OleDbParameter[] parameters = {
new OleDbParameter("@CustomerEmail", CustomerEmail),
new OleDbParameter("@userName", userName),
};
return DBhelper.Exists("select email from CustomerData where email=@CustomerEmail and userName=@userName", parameters);
}
public bool addTaskListToDataBase(Nob.Model.CrmSys.CustomerCategoryTaskList.TaskList model, string customerClass, string customerClassName)
{
OleDbParameter[] parameters = {
new OleDbParameter("@Email", model.Email),
new OleDbParameter("@Phone", model.Phone),
.....
};
StringBuilder sql = new StringBuilder();//难道是因为循环插入 这里创建太多StringBuilder实例引起的?
sql.Append("insert into CustomerData (");
sql.Append("email,phone,...");
sql.Append(")values(");
sql.Append("@Email,@Phone,...)");
return DBhelper.ExecuteNonqueryBool(sql.ToString(), parameters);
}
上面的是没有重复的, 重复的改成 in 就可以了
有高手指点迷津吗?我实在想不出来问题在哪里。 不知道是不是Access数据库本身承受不了十几万数据的问题。