//这是数据库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
//前面刚做到这功能的时候,是没问题的,但做一些其他的功能后,就发现该功能出错了
//一直不明白那里出错了``高手指点一下``这是我的毕业设计作品`过两天就要交了
//急急急急`,所以请帮帮忙
从VC中向数据库添加一条记录,为什么添加的数据是空的或为0