各位大侠请指导下。我使用的是SQL写的存储过程如下:CREATE PROC sms_selectlinkman
(
@LinkmanName VARCHAR(50)=NULL,
@LinkmanBirthday VARCHAR(50)=NULL,
@LinkmanCatalog VARCHAR(50)=NULL,
@linkmanCompany VARCHAR(50)=NULL,
@LinkmanPhoneNumber VARCHAR(50)=NULL,
@LinkmanEmail VARCHAR(50)=NULL
)
AS
DECLARE @string VARCHAR(1000)
IF ( LEN(@LinkmanName)>0)--按照姓名模糊查询
BEGIN
IF @string IS NULL
SET @string='select * from linkman where lm_name like ''%'+@LinkmanName+ '%'''
ELSE
SET @string=@string+' and lm_name like ''%'+@LinkmanName+ '%'''
END
IF (LEN(@LinkmanBirthday)>0)--按照联系人生日查询
BEGIN
IF @string IS NULL
SET @string=' select * from linkman where lm_birthday='''+@LinkmanBirthday+''''
ELSE
SET @string=@string+' and lm_birthday='''+@LinkmanBirthday+''''
END
IF(@string is null)--无条件查询
BEGIN
SET @string='select * from linkman '
END print( @string)
EXEC(@string)GO
现在我不能使用SQL作为数据库来使用上面的存储过程,而是使用的是Access作为数据库,可我还是要实现上面的组合查询。请各位出谋划策帮我看看怎么才能在Access数据库里面实现上面的组合查询!万谢!
(
@LinkmanName VARCHAR(50)=NULL,
@LinkmanBirthday VARCHAR(50)=NULL,
@LinkmanCatalog VARCHAR(50)=NULL,
@linkmanCompany VARCHAR(50)=NULL,
@LinkmanPhoneNumber VARCHAR(50)=NULL,
@LinkmanEmail VARCHAR(50)=NULL
)
AS
DECLARE @string VARCHAR(1000)
IF ( LEN(@LinkmanName)>0)--按照姓名模糊查询
BEGIN
IF @string IS NULL
SET @string='select * from linkman where lm_name like ''%'+@LinkmanName+ '%'''
ELSE
SET @string=@string+' and lm_name like ''%'+@LinkmanName+ '%'''
END
IF (LEN(@LinkmanBirthday)>0)--按照联系人生日查询
BEGIN
IF @string IS NULL
SET @string=' select * from linkman where lm_birthday='''+@LinkmanBirthday+''''
ELSE
SET @string=@string+' and lm_birthday='''+@LinkmanBirthday+''''
END
IF(@string is null)--无条件查询
BEGIN
SET @string='select * from linkman '
END print( @string)
EXEC(@string)GO
现在我不能使用SQL作为数据库来使用上面的存储过程,而是使用的是Access作为数据库,可我还是要实现上面的组合查询。请各位出谋划策帮我看看怎么才能在Access数据库里面实现上面的组合查询!万谢!
public string getSQL(string LinkmanName,string LinkmanBirthday)
{
StringBulider sb = new StringBuilder();
sb.Append("select * from linkman where 1==1 ");
if(string.IsNullOrEmpty(LinkmanName))
{
sb.Append(" and lm_name like '%"+LinkmanName+"%' ");
}
if(string.IsNullOrEmpty(LinkmanBirthday))
{
sb.Append(" and lm_birthday like '%"+LinkmanBirthday+"%' ");
} return sb.ToString();
}
然后在你的查询按钮里调用该方法来获取SQL查询字符串获取数据就OK了
有没办法可以在Access上改成上面的存储过程啊?
既然选择了A,那也只能传语句了,每次查询传输一条语句,也不至于LZ想的那么离谱
如果真的访问量那么大,那干嘛还要用A?