select * from 表名 where 条件,“条件”的格式

lovegame3 2012-11-12 08:49:15
如题,我用C++连接Access数据库,数据库连接成功,但在某个表里选择的时候,总是提示“至少一个参数没有被指定值”。条件中什么时候使用双引号“”,什么时候使用单引号''?我的sql句子是
select * from 餐饮管理 where 菜单=“+鱼香肉丝+”;
求高手指点啊!!
...全文
1657 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovegame3 2012-11-13
  • 打赏
  • 举报
回复
改正sql语句之后发现问题还是存在,自己检查后发现是别的地方的问题,感兴趣的朋友可以看看我最近发的、关于下拉列表控件与列表框响应的帖子。问题解决,结贴给分。吃一堑,长一智。编程要小心再小心。
lovegame3 2012-11-12
  • 打赏
  • 举报
回复
引用 2 楼 lghndyz 的回复:
不能使用双引号!!
嗯,本人菜鸟一枚。谢谢。可新的问题,弹出窗口说:Microsoft Access数据库引擎找不到输入表或查询“abcd”…………我把餐饮管理表名改成abcd调试了…………
lovegame3 2012-11-12
  • 打赏
  • 举报
回复
引用 3 楼 hdg3707 的回复:
select * from 餐饮管理 where 菜单=“+鱼香肉丝+”; 改成: select * from 餐饮管理 where 菜单='鱼香肉丝'; 字符型加单引号,日期型加#号,数字型不加任何符号,比如日期型: CString str; str="select * from 餐饮管理 where 日期=#2012-11-12#";
很详细,谢谢,可现在的问题弹出窗口说:Microsoft Access数据库引擎找不到输入表或查询“abcd”…………我把餐饮管理表名改成abcd调试了…………
hdg3707 2012-11-12
  • 打赏
  • 举报
回复
select * from 餐饮管理 where 菜单=“+鱼香肉丝+”; 改成: select * from 餐饮管理 where 菜单='鱼香肉丝'; 字符型加单引号,日期型加#号,数字型不加任何符号,比如日期型: CString str; str="select * from 餐饮管理 where 日期=#2012-11-12#";
lghndyz 2012-11-12
  • 打赏
  • 举报
回复
不能使用双引号!!
pzhuyy 2012-11-12
  • 打赏
  • 举报
回复
VC Ado调用Execute 时IDispatch error #3119http://blog.const.net.cn/a/1479.htm VC ADO数据库编程入门http://blog.const.net.cn/a/5638.htm vc中ado操作时提示类型不匹配错误解决办法http://blog.const.net.cn/a/15669.htm
lovegame3 2012-11-12
  • 打赏
  • 举报
回复
引用 8 楼 hdg3707 的回复:
数据库名改成英文名,不要用中文
用中文没问题啊…………
hdg3707 2012-11-12
  • 打赏
  • 举报
回复
数据库名改成英文名,不要用中文
lovegame3 2012-11-12
  • 打赏
  • 举报
回复
引用 6 楼 hdg3707 的回复:
那是你得重新生成一个数据源的驱动了(如果你用DSN来做数据源),也就是数据源里的数据库及表名加上字段都得一致才行,不能只改一个,其它的不改
可是我是用ado连接程序文件夹下的access数据库,代码如下
AfxOleInit();
	
	CString appPath;
	GetModuleFileName(NULL,appPath.GetBufferSetLength(255+1),255);
	appPath.ReleaseBuffer();
	int len = appPath.ReverseFind('\\') + 1;
	CString sysPath = appPath.Left(len);
	
	HRESULT hr;
	m_ConnState=FALSE;
	
	try
	{
		hr=m_pCon.CreateInstance("ADODB.Connection");
		
		if(SUCCEEDED(hr))
		{
			CString dbPath="Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+sysPath+"餐饮.accdb";

			hr=m_pCon->Open(_bstr_t(dbPath),"","",adModeUnknown);			
			
			if(SUCCEEDED(hr))
				m_ConnState=TRUE;
		}
	}
	catch(_com_error e)
	{
		CString errorMessage;
		errorMessage.Format("连接数据库错误\r\n错误信息:%s",e.ErrorMessage());
		AfxMessageBox(errorMessage);
	}
hdg3707 2012-11-12
  • 打赏
  • 举报
回复
那是你得重新生成一个数据源的驱动了(如果你用DSN来做数据源),也就是数据源里的数据库及表名加上字段都得一致才行,不能只改一个,其它的不改

4,012

社区成员

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

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