第一次用VC做数据库,有点问题请大家指教

JM1989120 2009-07-25 12:47:55
表 Guset
int Uid;主键
CString Uconame;
CString Things;
CString Store;
int Number;
我是用ADO访问数据库的
lass CGuset
{
private:
int Uid;
CString Uconame;
CString Things;
CString Store;
int Number;
public:
CStringArray a_Uconame;
CStringArray a_Things;
CStringArray a_Store;
CStringArray a_Number;
CStringArray a_Uid;

CGuset();
virtual ~CGuset();
//读取和设置变量
int GetUid();
void SetUid(int iUid);
CString GetUconame();
void SetUconame(CString cUconame);
CString GetThings();
void SetThings(CString cThings);
CString GetStore();
void SetStore(CString cStore);
int GetNumber();
void SetNumber(int iNumber);
//数据库操作
int HaveName(CString cUconame);
int HaveEmp(int iNumber);
void Load_dep();//批量读取
long sql_insert();
void sql_update(CString cUconame);
void sql_update(CString cThings,CString cStore,int iUid);
void sql_update2(CString cThings,CString cStore,int iNumber);
void sql_insert(CString cThings,CString cStore,int iNumber);
void GetData(int iUid);


};
在实现以下函数时
long CGuset::sql_insert()
{
//连接数据库
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
//设置INSERT语句
CString strUid;
strUid.Format("%d", Uid);

_bstr_t vSQL;
vSQL = "INSERT INTO Guset (Uid,Uconame, Things, Store,Number) VALUES('"
+ strUid + "','" + Uconame + "','"+Things+"','"+Store+"'," + Number + ")";
//执行INSERT语句
m_AdoConn.ExecuteSQL(vSQL);

//读取最大编号
long lUid;
vSQL = "SELECT MAX(Uid) AS MaxId FROM Guset";
//执行SELETE语句
_RecordsetPtr m_pRecordset;
m_pRecordset = m_AdoConn.GetRecordSet(vSQL);
//返回各列的值
if (m_pRecordset->EndOfFile)
{ lUid= 0;}
else
{lUid = atol((LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("MaxId"));}
//断开与数据库的连接
m_AdoConn.ExitConnect();

return lUid;
}
void CGuset::sql_update(CString cUconame)
{
//连接数据库
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
//设置UPDATE语句

_bstr_t vSQL;
vSQL = "UPDATE Guset SET Uconame='" + Uconame
+ "' WHERE Uid=" + a_Uid;
//执行UPDATE语句
m_AdoConn.ExecuteSQL(vSQL);
//断开与数据库的连接
m_AdoConn.ExitConnect();
}
出现错误
error C2666: '+' : 4 overloads have similar conversions
binary '+' : no operator defined which takes a right-hand operand of type 'class CStringArray' (or there is no acceptable conversion)
请问如何解决?


...全文
85 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2009-07-25
  • 打赏
  • 举报
回复
CString sSQL;
sSQL.Format(_T("UPDATE Guset SET Uconame='%s' WHERE Uid=%d", Uconame , a_Uid);

_bstr_t vSQL;
vSQL = (LPCSTR)sSQL;
JM1989120 2009-07-25
  • 打赏
  • 举报
回复
顶顶
JM1989120 2009-07-25
  • 打赏
  • 举报
回复
手头上目前没有关于format的书,谁能给一个具体的解决代码啊?
error C2666: '+' : 4 overloads have similar conversions 是long CGuset::sql_insert()
产生的
marrco2005 2009-07-25
  • 打赏
  • 举报
回复
vSQL = "INSERT INTO Guset (Uid,Uconame, Things, Store,Number) VALUES('"
+ strUid + "','" + Uconame + "','"+Things+"','"+Store+"'," + Number + ")";
Number 是一个 int 类型的,不能直接和 字符串类型想加
Quers 2009-07-25
  • 打赏
  • 举报
回复
字符串与字符串数组相加???
连加经常会出问题,建议用format试试

4,017

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧