写了个存储过程,里面主要是用xp_cmdshell去执行 BCP抽出数据单独调试存储过程一点问题没有,可以做成文件。但是用VB.NET的SqlCommand类的ExecuteNonQuery去调用却怎么也不行我把存储过程用的参数,本来是VB.NET传进去的,现在写死了在存储过程里都不好使谁知道是为什么阿?

解决方案 »

  1.   

    dim sql as string='exec 存储过程,参数1,参数2'
    dim sqlcom as sqlcommand(sql,cnn)
    sqlcom.ExecuteNonQuery
    或者
    sqlcom. sqlcom.Parameters(参数1)=textbox1.text是不是这样啊?
      

  2.   

    晕,别的存储过程,DML命令抽插数据的,一点问题都没同样的方法调用的
      

  3.   

    是这个错误吗?
    SQLState = S1000, NativeError = 0
    Error = [Microsoft][SQL Server Native Client 10.0]无法开放 BCP 的主资料档
    NULL是的话,请确定SQL Service Account有 Admin permission去建立、更改、打开 File.
      

  4.   


    您好,感谢你的回答,程序不报错,存储过程返回值为0,正常结束就是单独执行存储过程能做出来文件,用VB.NET调就不行
      

  5.   


    对,现在是这样写的调用,别的存储过程没有问题,就这个BCP的有问题
      

  6.   

    双引号的问题?
    或者xp_cmdshell再套一个存储过程看看
    create proc new_cmdshell @var1 varchar(1000)........
    as
    exec master..xp_cmdsehll ........
      

  7.   

    -- 允许配置高级选项
    EXEC sp_configure 'show advanced options', 1-- 重新配置
    RECONFIGURE-- 开启xp_cmdshell
    EXEC sp_configure 'xp_cmdshell', 1--重新配置
    RECONFIGURE
      

  8.   

    好用了,不是调用地方的问题...是因为我在VB.NET里先写了个头,然后文件没关闭,就去用存储过程接着写现在把存储过程那部分拿到外面就好用了