为什么从编辑框获取的中文字符在插入到数据库时会报错:格式输入错误!如何解决??

sql.Format(L"insert into LPUSER values(%d,\'%s\',\'%s\',\'%s\',%d,\'%s\',\'%s\','0','0','0',\'%s\','0','0','0')",
n, m_edit_pass, m_edit_niname, m_edit_IdNum, A, m_edit_phone, m_edit_email, date);
m_edit_niname编辑框中获取了中文字符,在执行sql语句前,在vs2015自动窗口中看到的sql语句内容没问题,所要插入的数据列类型为Nvarchar2,但执行db.Execute(sql)时报错:格式有误!求解?
已把服务器、客户端、vs2015、国家字符集都改为了UTF-8!

try
{
pRst = pConn->Execute((_bstr_t)sql, NULL, adCmdText);
}
catch (_com_error e)
{
AfxMessageBox(L"输入格式有误,请重新输入");
return false;
}
以上是执行过程中出错的代码!

图片说明