我写了一个存储过程,将数据插入到一个临时表中
最后作了一个查询:
Select  * from TempTableName where ComputerName=@ComputerName用Sqlcmd.ExecuteNonQuery() 和Sqlcmd.ExecuteReader 好像都不能
返回结果集。

解决方案 »

  1.   

    给你个参考吧
    /// <summary>
    /// 返回一个带参数的SqlDataReader对象
    /// </summary>
    /// <param name="sProc">
    /// 参数是存储过程名称
    /// </param>
    /// <param name="nId">
    /// 参数是取数的id
    /// </param>
    public SqlDataReader dr(string sProc,int nId)
    {
    //定义数据库的Connection
    SqlConnection myConn = new SqlConnection(SQLHelper.DBCONNECTIONSTRING);
    SqlCommand myCmd = new SqlCommand(); //定义数据库的Command
    myCmd.Connection = myConn;
    myCmd.CommandText = sProc;
    myCmd.CommandType = CommandType.StoredProcedure;
    myCmd.CommandTimeout = 10; //参数id
    SqlParameter  id = new SqlParameter("@id",SqlDbType.Int);
    id.Value = nId;
    myCmd.Parameters.Add(id);
    SqlDataReader dr = null;
    //执行过程
    try
    {
    //打开数据库的连接
    myConn.Open();
    }
    catch(SqlException ex)
    { }
    try
    {
    dr = myCmd.ExecuteReader(CommandBehavior.CloseConnection);
    }
    catch(SqlException ex)
    { } //返回dr
    return dr; }
      

  2.   

    在C#中 调用存储过程的写法我知道,我的存储过程中最后有一句
    Select  * from TempTableName where ComputerName=@ComputerName
    我需要的是返回这个结果集
    后面还有复杂的业务要求 要对结果集进行操作
    用DataReader的话  实现起来不了