VS2005遇到的有点纠结的sql古怪问题,INSERT INTO select FROM 插入语句前天都正常现在不行。 本帖最后由 lengcj 于 2012-02-20 15:23:37 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的INSERT 语句,怎么只有字段没有插入的值啊 INSERT INTO ClassLog ( DiQu,ZhuangTai,ShenheId,ShenheShiJian) (select DiQu,ZhuangTai,4,'2012-2-18 10:00:00' FROM ClassLogLuRu WHERE ClassLogLuRu_id =" + id + ") select DiQu,ZhuangTai,4,'2012-2-18 10:00:00' FROM ClassLogLuRu 不是值吗?补充 去掉select 前后的()在sql2005运行和检测都正常,就是Convert.ToInt32(SqlHelper.ExecuteScalar(DBConn.ConnectionString, CommandType.Text, sqlshenhe))取不到值,不能进行判断是否插入成功。谢谢 这里应该是不SQL的问题,你在其它问题上找找原因吧! 看下数据接口有没有什么问题! 这个应该不是SQL语句的问题,你看下数据接口哪里没有设对? .我也怀疑是其他问题造成的哟,记得就是win2003更新重启了一次第二天就不行了。郁闷。找不到原因才来万能的csdn求助哟。 string sqlshenhe = @"INSERT INTO ClassLog ( DiQu,ZhuangTai,ShenheId,ShenheShiJian) select DiQu,ZhuangTai,4,'2012-2-18 10:00:00' FROM ClassLogLuRu WHERE ClassLogLuRu_id ="+id +";//把你的代码改成这样试试 你不会是更换数据库了吧,或者就是有约束条件没处理好,直接INSERT了 string sqlshenhe = @"INSERT INTO ClassLog ( DiQu,ZhuangTai,ShenheId,ShenheShiJian) select DiQu,ZhuangTai,4,'2012-2-18 10:00:00' FROM ClassLogLuRu WHERE ClassLogLuRu_id ="+id +";改成这样试试:string sqlshenhe = string.Forma("INSERT INTO ClassLog ( DiQu,ZhuangTai,ShenheId,ShenheShiJian) select DiQu,ZhuangTai,4,{0} FROM ClassLogLuRu WHERE ClassLogLuRu_id ="+id +","2012-2-18 10:00:00");我也出现过这种问题最后请教了论坛里的人,发现原因居然是字符串错误:兴许是单引号和双引号的错误 ExecuteScalar 执行查询,并返回查询所返回的结果集中第一行的第一列。 忽略其他列或行ExecuteNonQuery 对连接执行 Transact-SQL 语句并返回受影响的行数。 帮忙砍砍这个咋的了 //根据SQL语句生成记录集 m_pRecordset.CreateInstance(__uuidof(Recordset)); _variant_t RecordsAffected; CString vSQL; vSQL.Format("SELECT * FROM 固定钻套 WHERE 孔径大于<'%f' and 孔径到>='%f'",m_DHole,m_DHole); m_pRecordset=m_pConnection->Execute(_bstr_t(vSQL),&RecordsAffected,adCmdText); if((m_pRecordset->adoBOF)&&(m_pRecordset->adoEOF)) { AfxMessageBox("没有满足条件的记录!"); m_pRecordset->Close(); return; } C# IntPtr.Zero 总是为0 是什么意思 c#是跨平台的吗? 求一正则,查找指定的内容 如何传递C#的byte[] 到 C++ COM对象中. 怎样防止垃圾收集器暂停程序 tooltip 的淡入淡出设置为true以后怎么没有效果呢? winform里面怎么实现窗体关闭时提示是否保存对话框(含YesNoCancel),但选择了Cancel后返回窗体不关闭 一个初学者的问题! 打印问题忘赐教 关于DATESET的提问 给Table动态添加控件并且得到控件的值 向高手求助, 与验证码识别关相, 请问如何实现字符的切分
INSERT INTO ClassLog ( DiQu,ZhuangTai,ShenheId,ShenheShiJian)
(select DiQu,ZhuangTai,4,'2012-2-18 10:00:00' FROM ClassLogLuRu WHERE ClassLogLuRu_id =" + id + ") select DiQu,ZhuangTai,4,'2012-2-18 10:00:00' FROM ClassLogLuRu 不是值吗?补充 去掉select 前后的()在sql2005运行和检测都正常,就是
Convert.ToInt32(SqlHelper.ExecuteScalar(DBConn.ConnectionString, CommandType.Text, sqlshenhe))取不到值,不能进行判断是否插入成功。谢谢
我也怀疑是其他问题造成的哟,记得就是win2003更新重启了一次
第二天就不行了。郁闷。找不到原因才来万能的csdn求助哟。
string sqlshenhe = @"INSERT INTO ClassLog ( DiQu,ZhuangTai,ShenheId,ShenheShiJian) select DiQu,ZhuangTai,4,'2012-2-18 10:00:00' FROM ClassLogLuRu WHERE ClassLogLuRu_id ="+id +";
//把你的代码改成这样试试
改成这样试试:string sqlshenhe = string.Forma("INSERT INTO ClassLog ( DiQu,ZhuangTai,ShenheId,ShenheShiJian) select DiQu,ZhuangTai,4,{0} FROM ClassLogLuRu WHERE ClassLogLuRu_id ="+id +","2012-2-18 10:00:00");
我也出现过这种问题
最后请教了论坛里的人,发现原因居然是字符串错误:兴许是单引号和双引号的错误
ExecuteNonQuery 对连接执行 Transact-SQL 语句并返回受影响的行数。
m_pRecordset.CreateInstance(__uuidof(Recordset));
_variant_t RecordsAffected;
CString vSQL;
vSQL.Format("SELECT * FROM 固定钻套 WHERE 孔径大于<'%f' and 孔径到>='%f'",m_DHole,m_DHole);
m_pRecordset=m_pConnection->Execute(_bstr_t(vSQL),&RecordsAffected,adCmdText);
if((m_pRecordset->adoBOF)&&(m_pRecordset->adoEOF))
{
AfxMessageBox("没有满足条件的记录!");
m_pRecordset->Close();
return;
}