如题

解决方案 »

  1.   

    存储过程不是在这里的
    存储过程都写在数据库里面
    用SQl语句写的,没有用c#写的
      

  2.   

    SqlCommand.CommandType=CommandType.StroeProcedure...c#可以写sql2005的存出过程
      

  3.   

    在SQL里写好存储过程,然后再C#里调用调用的
      

  4.   

    C#调用存储过程简单完整例子
    文章来源:http://blog.sithere.net/article.asp?id=1525.html.net中的存储过程执行,用到的存储过程依旧是addnewuser,如下:
    程序代码
    Create PROCEDURE dbo.addnewuser 
        (
        @name varchar(40),
        @pass varchar(40),
        @email varchar(40),
        @qq varchar(40)
        )
    AS
        insert into userinfo(name,pass,email,qq) values(@name,@pass,@email,@qq)
    GO
    c#程序代码如下: 程序代码
    try
    {
        SqlConnection conn = new SqlConnection();    //创建sqlconnection对象
        conn.ConnectionString = "server=(local);database=test;uid=sa;pwd=;";    //设置连接字符串
        conn.Open();    //打开连接
        SqlCommand cmd = conn.CreateCommand();   //创建与当前conn对象关联的cmd对象
        cmd.CommandType = CommandType.StoredProcedure;  //设置该cmd对象的命令类型为存储过程
        cmd.CommandText = "addnewuser";    //将CommandText的值设为存储过程名称
        cmd.Parameters.Add(new SqlParameter("@name", name.Text.Trim()));  //添加存储过程参数
        cmd.Parameters.Add(new SqlParameter("@pass", pass.Text.Trim()));
        cmd.Parameters.Add(new SqlParameter("@email", email.Text.Trim()));
        cmd.Parameters.Add(new SqlParameter("@qq", qq.Text.Trim()));
        cmd.ExecuteNonQuery();  //执行存储过程
        MessageBox.Show("用户注册成功!", "提示信息");
        ......
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "出错提示");
        ......
    }
      

  5.   

    我做的一个例子:
            //带输入参数的存储过程
            SqlConnection conn2 = new SqlConnection(ConfigurationManager.ConnectionStrings["conn"].ToString());
            SqlDataAdapter da = new SqlDataAdapter();
            DataSet ds = new DataSet();
            da.SelectCommand = new SqlCommand();
            da.SelectCommand.Connection = conn2;
            da.SelectCommand.CommandText = "ParamCustomer1";//存储过程名
            da.SelectCommand.CommandType = CommandType.StoredProcedure;        SqlParameter param = new SqlParameter("@cCusName", SqlDbType.VarChar);
            param.Direction = ParameterDirection.Input;
            param.Value = TextBox1.Text;//参数从textBox输入
            da.SelectCommand.Parameters.Add(param);        da.Fill(ds);
            GridView1.DataSource = ds;
            GridView1.DataBind(); //GridView1绑定
      

  6.   

    刚好,把这个copy给楼主吧:C#获取存储过程的Return返回值和Output输出参数值 
    作者:dnawo 日期:2008-04-10 
    字体大小: 小 中 大 
    1.获取Return返回值 程序代码 
    存储过程 
    Create PROCEDURE MYSQL 
    @a int, 
    @b int 
    AS 
    return @a + @b 
    GO 
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString()); 
    conn.Open(); 
    SqlCommand MyCommand = new SqlCommand("MYSQL", conn); 
    MyCommand.CommandType = CommandType.StoredProcedure; 
    MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int)); 
    MyCommand.Parameters["@a"].Value = 10; 
    MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int)); 
    MyCommand.Parameters["@b"].Value = 20; 
    MyCommand.Parameters.Add(new SqlParameter("@return", SqlDbType.Int)); 
    MyCommand.Parameters["@return"].Direction = ParameterDirection.ReturnValue; 
    MyCommand.ExecuteNonQuery(); 
    Response.Write(MyCommand.Parameters["@return"].Value.ToString()); 2.获取Output输出参数值 
    程序代码 
    //存储过程 
    Create PROCEDURE MYSQL 
    @a int, 
    @b int, 
    @c int output 
    AS 
    Set @c = @a + @b 
    GO 
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString()); 
    conn.Open(); 
    SqlCommand MyCommand = new SqlCommand("MYSQL", conn); 
    MyCommand.CommandType = CommandType.StoredProcedure; 
    MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int)); 
    MyCommand.Parameters["@a"].Value = 20; 
    MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int)); 
    MyCommand.Parameters["@b"].Value = 20; 
    MyCommand.Parameters.Add(new SqlParameter("@c", SqlDbType.Int)); 
    MyCommand.Parameters["@c"].Direction = ParameterDirection.Output; 
    MyCommand.ExecuteNonQuery(); 
    Response.Write(MyCommand.Parameters["@c"].Value.ToString()); 
      

  7.   

    我刚做了一个测试的程序 提示有错 大伙帮忙改下将 varchar 值 'select id from [big] where id=' 转换为数据类型为 int 的列时发生语法错误。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 将 varchar 值 'select id from [big] where id=' 转换为数据类型为 int 的列时发生语法错误。源错误: 
    行 31:         SqlDataAdapter adapter = new SqlDataAdapter(selectCMD);
    行 32:         myDS.Clear();
    行 33:         adapter.Fill(myDS, "TestTable1");
    行 34:         GridView1.DataSource = myDS.Tables[0].DefaultView;
    行 35:     }
    源文件: d:\MyWeb\aspx\存储过程\测试\Default.aspx.cs    行: 33 
    =====================================================================================
    我的 存储过程ALTER PROCEDURE dbo.SelectSql 
    @id int ,
    @dbName varchar(255)
    --@count int OUTPUT
    AS
    /* SET NOCOUNT ON */ 
    declare @strSQL varchar(5000) -- 主语句 
    if @id!='' begin 
    set @strSQL='select id from [' + @dbName + '] where id=' + @id+''
    exec ( @strSQL)
    end
    =====================================================================================
    调用代码        SqlConnection Conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);
            SqlCommand selectCMD = new SqlCommand("SelectSql", Conn);
            selectCMD.CommandType = CommandType.StoredProcedure;        //添参数
             
            SqlParameter strlac = new SqlParameter("@id", SqlDbType.Int);
            selectCMD.Parameters.Add(strlac);
            strlac.Value = 1;        SqlParameter strlon = new SqlParameter("@dbName", SqlDbType.VarChar);
            strlon.Value = "big";
            selectCMD.Parameters.Add(strlon);        //    创建DataAdapter对象填充数据   
            DataSet myDS = new DataSet();
            SqlDataAdapter adapter = new SqlDataAdapter(selectCMD);
            myDS.Clear();
            adapter.Fill(myDS, "TestTable1");
            GridView1.DataSource = myDS.Tables[0].DefaultView;