标题:从VC中向数据库添加一条记录,为什么添加的数据是空的或为0
只看楼主
comebaby
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2006-6-17
 问题点数:0 回复次数:1 
从VC中向数据库添加一条记录,为什么添加的数据是空的或为0

//这是数据库student表中的类型定义
grade int 4
class varchar 50
id varchar 50 //主键
name varchar 50
english float 8
math float 8
chinese float 8
summark float 8
average float 8
//以下是ADO封装类的部分代码
BOOL CADODB::IsOpen()//判断数据库是否处于打开状态
{
try
{
return (m_pConn!=NULL &&(m_pConn->State & adStateOpen));
}
catch(_com_error e)//异常处理
{
AfxMessageBox(e.ErrorMessage());
}
return FALSE;
}
_RecordsetPtr CADODB::Execute(LPCTSTR strSQL,long lOptions)
{
_variant_t RecordsAffected;
try
{//执行SQL语句
return m_pConn->Execute(_bstr_t(strSQL),&RecordsAffected,adCmdText);
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}
return FALSE;
}
bool CADODB::Open(LPCTSTR lpszConnect,long lOptions)//打开数据库连接
{
m_pConn.CreateInstance("ADODB.Connection");//创建Connection对象
//初始化Recordset指针
m_pRs.CreateInstance(_uuidof(Recordset));
m_strConn=lpszConnect;
if(m_strConn.IsEmpty())
{
return FALSE;
}
if(IsOpen())
Close();
try
{
//连接数据库
return (m_pConn->Open(_bstr_t(m_strConn),"","",lOptions)==S_OK);
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}
return FALSE;
}

//CIMPORT对话框类中编辑框的变量定义
CString m_name;
float m_chinese;
CString m_class;
float m_english;
CString m_id;
float m_math;
int m_grade;
//下面是实现添加记录的代码
void CIMPORT::OnButtonAppend() //CIMPORT对话框类
{
// TODO: Add your control notification handler code here
CString sql,sq;
sq="Provider=SQLOLEDB.1;Password=121314;Persist Security Info=True;User ID=gogogo;Initial Catalog=student;Data Source=9A729FB3EBB243C\\SQLDB";
if(!g_ad.Open(sq))
{
AfxMessageBox("数据库未打开");
return;
}
sql.Format("Insert into student(grade,class,id,name,english,math,chinese)values"
"('%d','%s','%s','%s','%f','%f','%f')",m_grade,m_class,m_id,m_name,m_english,m_math,m_chinese);
g_ad.Execute(sql);
g_ad.Close();
}


//数据库连接成功,SQL语法没问题,但是添加的记录条数据是空的或者有的数据为0
//前面刚做到这功能的时候,是没问题的,但做一些其他的功能后,就发现该功能出错了
//一直不明白那里出错了``高手指点一下``这是我的毕业设计作品`过两天就要交了
//急急急急`,所以请帮帮忙


搜索更多相关主题的帖子: 数据库 float varchar IsOpen 
2007-05-29 23:17
comebaby
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2006-6-17
得分:0 

晕``
低级错误``
void CIMPORT::OnButtonAppend() //CIMPORT对话框类
{
UpdateData(TRUE);//忘了加这句代码,哭55555,为了这问题几天都没搞定,刚才认真看,才发现,好傻
// TODO: Add your control notification handler code here
CString sql,sq;
sq="Provider=SQLOLEDB.1;Password=121314;Persist Security Info=True;User ID=gogogo;Initial Catalog=student;Data Source=9A729FB3EBB243C\\SQLDB";
if(!g_ad.Open(sq))
{
AfxMessageBox("数据库未打开");
return;
}
sql.Format("Insert into student(grade,class,id,name,english,math,chinese)values"
"('%d','%s','%s','%s','%f','%f','%f')",m_grade,m_class,m_id,m_name,m_english,m_math,m_chinese);
g_ad.Execute(sql);
g_ad.Close();
}

2007-05-29 23:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-143399-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.213721 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved