- C# code
var strSQL = new StringBuilder(); strSQL.Append("declare @rodno varchar(50) "); strSQL.Append("set @rodno = @GetRod "); strSQL.Append("SELECT 'aaa' AS Type,a.rodNO as RodNO,a.starttime AS Starttime,b.endtime AS Endtime "); strSQL.Append("FROM PRO_COREVAD_BEGIN a,PRO_COREVAD_END b "); strSQL.Append("WHERE [email protected] "); strSQL.Append("AND a.rodNO=b.rodNO "); strSQL.Append("union "); strSQL.Append("SELECT 'bbb' AS Type,a.rodNO,a.starttime,b.endtime "); strSQL.Append("FROM PRO_Coresinter_BEGIN a,PRO_Coresinter_END b "); strSQL.Append("WHERE a.rodNO LIKE (@rodno+'%') "); strSQL.Append("AND a.rodNO=b.rodNO "); strSQL.Append("union "); strSQL.Append("SELECT 'ccc' AS Type,c.rodNo,a.starttime,b.endtime "); strSQL.Append("FROM PRO_CoreVacuumdegass_BEGIN a,PRO_CoreVacuumdegass_END b,PRO_CoreVacuumdegass_BatchInfo c "); strSQL.Append("WHERE c.rodNO LIKE (@rodno+'%') "); strSQL.Append("AND a.batchid=b.batchid AND a.batchid=c.batchid AND c.batchid = (SELECT MAX(batchid) "); strSQL.Append("FROM PRO_CoreVacuumdegass_BatchInfo "); strSQL.Append("WHERE rodNo LIKE (@rodno+'%')) --ddd"); SqlParameter[] parameters = { new SqlParameter("@GetRod", SqlDbType.VarChar,50) }; parameters[0].Value = rodno; var ds = SQLHelper.GetDs(strSQL.ToString(), parameters);
------解决方案--------------------
@GetRod 是程序的参数?
delphi的sql参数好像是 :参数名
这样拼凑应该可以吧:
strSQL.Append("set @rodno = "+rodno+" ");
------解决方案--------------------
如果都是sql的变量
则必须decalre过的
看你的需求,[email protected]
拼凑一下就行了,[email protected]
------解决方案--------------------
你这写法你自己看着难受不?
为什么不在数据写好存储过程然后用程序传参调用呢!