SEG1:这是自定义函数,取得指定列光标所在处的单元值。
CString CDataGrid::GetItem(int ColNum)
{
CColumns cols=GetColumns();// first get the set of columns
VARIANT v_ColNum,v_Value; v_ColNum.vt=VT_I2; //A 2-byte integer value is stored in iVal
v_ColNum.iVal=ColNum; //give the integer value to int style.
CColumn col=cols.GetItem(v_ColNum);
v_Value=col.GetValue(); //get the value of the present column
return v_Value.bstrVal; //turn the value into string style and return it}
SEG2: 这是删除数据的代码。
void CStudentDlg::OnButtonDelete()
{
CEditDelete dlg;
// TODO: Add your control notification handler code here
if(m_adodc.GetRecordset().GetEof()==1)
{
MessageBox("请选择要删除的数据");
return ;
}
if((MessageBox("是否删除当前记录","请确认",MB_YESNO))==IDYES)
{
CStudent stu;
stu.sql_delete(m_datagrid.GetItem(1));
RefreshData();
}
SEG3:这是执行删除的代码
void CStudent::sql_delete(CString str)
{ ADOConn m_AdoConn;
m_AdoConn.InitDBConnect();
_bstr_t vSQL;
vSQL="DELETE FROM Students WHERE F2="+str;
m_AdoConn.ExecuteSQL(vSQL);
m_AdoConn.ExitConnect();
}
}
在查询分析器执行下面语句是可以成功删除的。
delete from Students
where F2='翟与'
表结构:列名:StuNum,F2,F3 (分别是学号,姓名,性别) 我的问题是:当我在SEG2代码里将GetItem(1)里参数换为0,SEG3里将F2换成StuNum,数据就删除成功
若用上面那种,就提示“列名某某无效”,按我理解无非就是换一种删除方式而已啊,为何不能删掉?
难道一定要根据关键字来删?我这里StuNum是主码。不知道是否此愿意,特此愿闻其详
CString CDataGrid::GetItem(int ColNum)
{
CColumns cols=GetColumns();// first get the set of columns
VARIANT v_ColNum,v_Value; v_ColNum.vt=VT_I2; //A 2-byte integer value is stored in iVal
v_ColNum.iVal=ColNum; //give the integer value to int style.
CColumn col=cols.GetItem(v_ColNum);
v_Value=col.GetValue(); //get the value of the present column
return v_Value.bstrVal; //turn the value into string style and return it}
SEG2: 这是删除数据的代码。
void CStudentDlg::OnButtonDelete()
{
CEditDelete dlg;
// TODO: Add your control notification handler code here
if(m_adodc.GetRecordset().GetEof()==1)
{
MessageBox("请选择要删除的数据");
return ;
}
if((MessageBox("是否删除当前记录","请确认",MB_YESNO))==IDYES)
{
CStudent stu;
stu.sql_delete(m_datagrid.GetItem(1));
RefreshData();
}
SEG3:这是执行删除的代码
void CStudent::sql_delete(CString str)
{ ADOConn m_AdoConn;
m_AdoConn.InitDBConnect();
_bstr_t vSQL;
vSQL="DELETE FROM Students WHERE F2="+str;
m_AdoConn.ExecuteSQL(vSQL);
m_AdoConn.ExitConnect();
}
}
在查询分析器执行下面语句是可以成功删除的。
delete from Students
where F2='翟与'
表结构:列名:StuNum,F2,F3 (分别是学号,姓名,性别) 我的问题是:当我在SEG2代码里将GetItem(1)里参数换为0,SEG3里将F2换成StuNum,数据就删除成功
若用上面那种,就提示“列名某某无效”,按我理解无非就是换一种删除方式而已啊,为何不能删掉?
难道一定要根据关键字来删?我这里StuNum是主码。不知道是否此愿意,特此愿闻其详
解决方案 »
- 怎么放控件到clistctrl中?比如checkbox
- 请哪位高手教我怎样装MSDN!!!
- 程序打包问题
- 利用DLL导出对话框后,在视图上以非模式创建它,之后,DLL对话框IDD_DLL_DIALOG1上的所有控件都失去了tab..
- 如何获取指定进程打开的句柄数目?? 急!!!
- 各位帮帮忙,如何将一个Bitmap(*.bmp,*.jpg)文件在PictureBox上显示出来??
- 如何计算FTP Downdload的速度?
- 急,如何用c程序实现对一个可打印的文件(如*.doc,*.txt,*.bmp)进行自动打印?望各位高手不吝赐教
- 请教网卡通信
- 请问此句出错信息是什么意思呀?该如何解决?
- 有谁知道疯狂的程序员作者 绝影 被判了几年??
- DbgHelpCreateUserDump如何生成dump文件?
把你程序中生成的sql语句考出来在查询分析器里执行
看看报什么错