我用 SQL 写好了一个过程,名为:pr_fin_gycl.要传入的参数有:@lnpdctno,@lntechno
返回一个临时表的数据.
请问在C#怎么样调用这个过程,有那几种常用的方法,谢谢

解决方案 »

  1.   

    cm.Parameters.Add("@barCode", SqlDbType.VarChar, 50).Value = barCode;
    cm.Parameters.Add("@name", SqlDbType.VarChar, 50).Value = name;
    cm.Parameters.Add("@printTime", SqlDbType.DateTime).Value = printTime;
    参数就这么传个sqlCommand就行~
    返回就用sqlAdapter,放到一个dataTable里,明白?
      

  2.   

    SqlCommand cmd = new SqlCommand("pr_fin_gycl", con);
    cmd.CommandType = CommandType.StoredProcedure;
    SqlParameter myParm = cmd.Parameters.Add("@lnpdctno", SqlDbType.NVarChar, 50);
    myParm.Value = "test"; 
    SqlParameter myParm1 = cmd.Parameters.Add("@lntechno", SqlDbType.NVarChar, 50);
    myParm1.Value = "test"; 
    SqlDataAdapter sda = new SqlDataAdapter(cmd);
    DataSet set = new DataSet();
    sda.Fill(set);
      

  3.   

    SqlConnection myCon = new SqlConnection(constr);
    myCon.Open;string sSQL = "pr_fin_gycl";
    SqlCommand myCommand = new SqlCommand(sSQL,myCon);
    SqlCommand.CommandTyp = CommandType.StoredProcedure;SqlParameter myParm = cmd.Parameters.Add("@lnpdctno", SqlDbType.NVarChar, 50);
    myParm.Value = "test"; 
    SqlParameter myParm1 = cmd.Parameters.Add("@lntechno", SqlDbType.NVarChar, 50);
    myParm1.Value = "test"; SqlDataAdpter myReader = myCommand.ExecuteReader();  //执行到这里错了。..
    while(myReader.Reader())
    {
    //
    }
    错误是:未处理"System.Date SqlClient.SqlException"类型异常出现在 system.data.dll中
      

  4.   

    SqlDataAdpter myReader = myCommand.ExecuteReader();  //执行到这里错了。..===========================================================================SqlDataReader myReader = myCommand.ExecuteReader(); 
      

  5.   

    兄弟呀,
    我用 SqlDataReader myReader = myCommand.ExecuteReader();
    还是错了。.怎么回事呢....
      

  6.   

    //reader
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = this.Conn;
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = ProcName;            if( Paras != null )
                {
                    foreach( IDataParameter para in Paras )
                    {
                        cmd.Parameters.Add( para );
                    }
                }            SqlDataReader reader = null;
                reader = cmd.ExecuteReader( CommandBehavior.CloseConnection );
      

  7.   

    //dataset
            public DataSet ExecProcGetDataSet(string ProcName, string TableName, IDataParameter[] Paras)
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = this.Conn;
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = ProcName;            if (Paras != null)
                {
                    foreach (IDataParameter para in Paras)
                    {
                        cmd.Parameters.Add(para);
                    }
                }            SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();            da.Fill(ds, TableName);            return ds;
            }
      

  8.   

    我最懒。
    string strSql = "pr_fin_gycl '"+参数1的值+"','"+参数2的值+"'";DataSet ds= new DataSet();
    SqlHelper.FillDataset("连接字符串",CommandType.Text,strSql.Trim(),ds,new string[]{"表名"});
    //SqlHelper 用的是微软的那个结果在  ds.Tables["表名"] 里面