怎么从c#里面运行一个存储过程,给他参数然后将结果村到一个变量里?

解决方案 »

  1.   

    CREATE PROCEDURE GetCount 
    @iReturn int output
    ASselect @iReturn =count(1) from t1
    return 111
    GO        private void button1_Click_1(object sender, EventArgs e)
            {
                SqlConnection conn = new SqlConnection("Data Source=127.0.0.1;Initial Catalog=db;Persist Security Info=True;User ID=sa;Password=12345;");
                SqlCommand cmd = new SqlCommand("GetCount", conn);            cmd.CommandType = CommandType.StoredProcedure;
                SqlParameter[] parm = {new SqlParameter("@iReturn",SqlDbType.Int),
                                        new SqlParameter("@XX",SqlDbType.NVarChar)
                                        };            //输出参数
                parm[0] = cmd.Parameters.Add("@iReturn", SqlDbType.Int);
                parm[0].Direction = ParameterDirection.Output;            //返回值
                parm[1] = cmd.Parameters.Add("@XX", SqlDbType.Int);
                parm[1].Direction = ParameterDirection.ReturnValue;            conn.Open();            SqlDataReader reader = cmd.ExecuteReader();            MessageBox.Show(parm[0].Value.ToString() + "   " + parm[1].Value.ToString());            reader.Close();
                conn.Close();
            }
      

  2.   

    SqlConnection conn = new SqlConnection(连接字符);
    SqlCommand cmd = new SqlCommand(存储过程名称);
    cmd.CommandType=CommandType.StoreProc;
    cmd.Parameters.add("参数名",类型);
    cmd.Parameters["参数名"].Direction = out或者input//out就是输出,input就是输入的一样
    大概的就是这样的(手动写的,有点单词可能错了)
      

  3.   

    过程设置 @return out
    parameters[index].Direction = ParameterDirection.Output;
    C#执行过程后
    string returnValue = parameters[index].Value.ToString();