我现在在一个类中写了一方法,功能是查询数据表中有没有这条记录的存在(这个类我想以后还会在别的表中用到,所以表名和字段名都当变量传进去)类中的方法是:
public string ChkID(string tableName,string IDName, int recID)
{
DataBase DB = new DataBase();
SqlParameter[] prams ={
DB.MakeInParam("@tableName",SqlDbType.VarChar,20,tableName),
DB.MakeInParam("@recID",SqlDbType.VarChar,5,recID),
DB.MakeInParam("@IDName",SqlDbType.VarChar,8,IDName),
DB.MakeOutParam("@backinfo", SqlDbType.Int, 4)
};
try
{
DB.RunProc("sp_chkID", prams);
string backinfo = Convert.ToString(prams[3].Value);
// 如果backinfo为空,则添加失败
if (backinfo == string.Empty)
return null;
else
return backinfo;
}
catch(Exception ex)
{
ex.Message.ToString();
return null ;
}
} 储存过程如下:CREATE PROCEDURE dbo.sp_chkID
(
@tableName varchar(20),
@IDName varchar(8),
@recID varchar(5),
@backinfo int output
) AS
exec('select '+@backinfo+'=count(*) from '+@tableName+' where '+@IDName+'='+@recID)
print('select '+@backinfo+'=count(*) from '+@tableName+' where '+@IDName+'='+@recID)
GO上面的储存过程在查询分析器里是能运行的.
但一到程序中就出现了以下错误:
第一行"="附近有错误
--------------------------------------------------------------------------
以上方法可能不好,不知道哪位高手能有好的方法!!~
public string ChkID(string tableName,string IDName, int recID)
{
DataBase DB = new DataBase();
SqlParameter[] prams ={
DB.MakeInParam("@tableName",SqlDbType.VarChar,20,tableName),
DB.MakeInParam("@recID",SqlDbType.VarChar,5,recID),
DB.MakeInParam("@IDName",SqlDbType.VarChar,8,IDName),
DB.MakeOutParam("@backinfo", SqlDbType.Int, 4)
};
try
{
DB.RunProc("sp_chkID", prams);
string backinfo = Convert.ToString(prams[3].Value);
// 如果backinfo为空,则添加失败
if (backinfo == string.Empty)
return null;
else
return backinfo;
}
catch(Exception ex)
{
ex.Message.ToString();
return null ;
}
} 储存过程如下:CREATE PROCEDURE dbo.sp_chkID
(
@tableName varchar(20),
@IDName varchar(8),
@recID varchar(5),
@backinfo int output
) AS
exec('select '+@backinfo+'=count(*) from '+@tableName+' where '+@IDName+'='+@recID)
print('select '+@backinfo+'=count(*) from '+@tableName+' where '+@IDName+'='+@recID)
GO上面的储存过程在查询分析器里是能运行的.
但一到程序中就出现了以下错误:
第一行"="附近有错误
--------------------------------------------------------------------------
以上方法可能不好,不知道哪位高手能有好的方法!!~
解决方案 »
- activex部署的问题
- 关于双屏显示的问题。求思路。。
- 求 大侠 给个可以检测服务器是否被攻击的办法
- Word 导入数据中出现的一点小问题..请大家帮忙解决一下....
- 客户端 服务器 通信问题
- C#web应用程序无法引用自己写的类库?
- CrystalReport for Visual Studio 2005中如何取得CrystalReport的Column的Name!!!
- datatable的扩展属性如何和数据库同步?
- 请问怎么用SendKeys 发送shift+tab组合键呢??
- Visual studio 2010的安装包是不是不带MSDN 文档,2008带文档是吧?
- 调用打印功能时出现runtimeerror,为什么?
- 菜鸟问题 如何将textBox里的值转化为int
整个语句组合后就是
select =count(*) from tableName where IDName = recID建议:参考sql server的帮助
整个语句组合后就是
select =count(*) from tableName where IDName = recID@backinfo是一个返回值的呀?
我用查询分析器打印出来是这样的
select @backinfo=count(*) from tableName where IDName = recID