比如有这样一个存储过程
CREATE PROCEDURE Q_GetWare
@WareName varchar(30),
@RecordCount int output
asdeclare @Tsql varchar(200)
select @tsql='select * from ware where warename like '
      +char(39)+'%' +@WareName +'%'+char(39)
exec(@tsql)
select @RecordCount=@@RowCount
return 0GO******************************************************
C#代码system.Data.OleDb.OleDbCommand Cmd = Cn.CreateCommand();//请问用下边的格式怎么调用
Cmd.CommandText="{?=call Q_GetWare(?,?)}是不是有输出参数的不能用这种方法必须用参数集合中添加参数
,如果只有输入参数和返回值能这样调用不?给个例子,谢谢。

解决方案 »

  1.   

    public void InsertVirtual(string ProcedureTable)
    {
    try
    {
    // 创建Connection和Command对象
    SqlConnection myConnection = new SqlConnection(sqlDA.connString);
    SqlCommand myCommand = new SqlCommand(ProcedureTable, myConnection);
    myCommand.CommandTimeout = 0;//不作超时检查  myCommand.CommandType = CommandType.StoredProcedure; myConnection.Open(); //执行
    myCommand.ExecuteNonQuery(); myConnection.Close();
    }
    catch (Exception err)
    {
    MessageBox.Show( err.Message );
    }
    }
      

  2.   

    public void InsertVirtual(string ProcedureTable)
    {
    try
    {
    // 创建Connection和Command对象
    SqlConnection myConnection = new SqlConnection(sqlDA.connString);
    SqlCommand myCommand = new SqlCommand(ProcedureTable, myConnection);
    myCommand.CommandTimeout = 0;//不作超时检查  myCommand.CommandType = CommandType.StoredProcedure;// 构造参数
    SqlParameter pmTable = new SqlParameter("@tblName", SqlDbType.VarChar, 255);
    pmTable.Value = strTable; // 传递参数
    myCommand.Parameters.Add(pmTable); myConnection.Open(); //执行
    myCommand.ExecuteNonQuery(); myConnection.Close();
    }
    catch (Exception err)
    {
    MessageBox.Show( err.Message );
    }
    }
      

  3.   

    参看
    http://blog.csdn.net/knight94/archive/2006/03/23/635885.aspx
    中的存储调用
      

  4.   

    参考,
    http://blog.csdn.net/zhzuo/archive/2004/08/06/67016.aspx
    http://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspx
      

  5.   

    谢谢各位回贴,Command 对象中用Parameters集合添加参数这个我是会的,
    我只是想知道用 {?=call Q_GetWare(?,?)}这种标准调用存储过程方式参不能用在这种有返回值和输出参数的存储过程上.在ADO2.x中我就是经常把存储过程做为连接对象的Com方法来调用的,只是不能用在有返回参数和输出参数的存储过程上,因为是初学.NET,所以想问问ADO.net中遇到这种情况用标准调用方式怎么处理.
      

  6.   

    啥数据库?sql server 噻