把数据库表名做为@baseName,数据库会认为这是一个table类型的变量的。 [解决办法] SqlParameter会自动帮你做一些处理,比如过滤一些非法字符什么的; 所以你直接传库名的话,SqlParameter就自动帮你处理成这样了: use topfiveleaguedb delete from 'baseName' 这样就报错了
直接字符串拼接和用SqlParameter还是有区别的 [解决办法]
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