日期:2014-05-17  浏览次数:20534 次

关于SqlParameter的用法

SqlParameter[] paramArray = new SqlParameter[1];
paramArray[0] = new SqlParameter("@baseName", baseName);
strCommandText = "use topfiveleaguedb delete from @baseName";
SqlHelper.ExecuteNonQuery(CommandType.Text, strCommandText, paramArray);


报错说必须声明变量@baseName,我想知道SqlParameter怎么声明库名的变量
SqlParameter 库名 sql

------解决方案--------------------
strCommandText = "use topfiveleaguedb delete from " + baseName;
------解决方案--------------------
引用:
Quote: 引用:

baseName是空?
不是,都是正常的数值,但是只要传库名就不行

看错了~当成传字段参数了。

把数据库表名做为@baseName,数据库会认为这是一个table类型的变量的。
------解决方案--------------------
SqlParameter会自动帮你做一些处理,比如过滤一些非法字符什么的;
所以你直接传库名的话,SqlParameter就自动帮你处理成这样了:
use topfiveleaguedb delete from 'baseName' 这样就报错了

直接字符串拼接和用SqlParameter还是有区别的
------解决方案--------------------
引用:
Quote: 引用:


strCommandText = "use topfiveleaguedb delete from @baseName"; 
SqlParameter[] paramArray = new SqlParameter[1];
paramArray[0] = new SqlParameter("@baseName", baseName); 
SqlHelper.ExecuteNonQuery(CommandType.Text, strCommandText, paramArray); 
感觉和我写的没什么区别啊


use topfiveleaguedb delete from baseName = @baseName
------解决方案--------------------
不一定要用SqlParameter
strCommandText = string.Format("use topfiveleaguedb delete from {0}",baseName);
            SqlHelper.ExecuteNonQuery(CommandType.Text, strCommandText,new SqlParameter[]{ });