首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 这个问题简单吗?。。。。我不会头大了 [已结帖,结帖人:zhang_yugang]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhang_yugang
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-08-22 17:06:17 楼主
    在一个类中 定义一个方法,执行带参数的存储过程。
    然后在后面调用这个方法。
    看起来挺简单的:
    我想要一个完整的例子:能运行的。
    请贴出您的代码!!!谢谢。。。。。
    60  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • flysky862
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 17:34:021楼 得分:5
    /// <summary>
    /// 增加一条数据
    /// </summary>
    public long Add(admin.Model.topic model)
    {
    return dal.Add(model);
    }


    /// <summary>
    ///  增加一条数据
    /// </summary>
    public long Add(admin0318.Model.gbtopic model)
    {
    //model.gbtopic_id=GetMaxId();
    int rowsAffected;
    SqlParameter[] parameters = {
    new SqlParameter("@gbtopic_id", SqlDbType.BigInt,8),
    new SqlParameter("@gbtopic_dcuser_name", SqlDbType.VarChar,20),
    new SqlParameter("@gbtopic_mingchen", SqlDbType.VarChar,40),
    new SqlParameter("@gbtopic_title", SqlDbType.VarChar,250),
    new SqlParameter("@gbtopic_text", SqlDbType.Text),
    new SqlParameter("@gbtopic_num", SqlDbType.Int,4)
    };
    parameters[0].Value = model.gbtopic_id;
    parameters[1].Value = model.gbtopic_dcuser_name;
    parameters[2].Value = model.gbtopic_mingchen;
    parameters[3].Value = model.gbtopic_title;
    parameters[4].Value = model.gbtopic_text;
    parameters[5].Value = model.gbtopic_num;

    DbHelperSQL.RunProcedure("UP_gbtopic_ADD",parameters,out rowsAffected);
    return model.gbtopic_id;
    }

    //UP_gbtopic_ADD 为存储过程名
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chenyijiu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 17:34:142楼 得分:5
    http://topic.csdn.net/t/20060625/22/4842437.html
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ojlovecd
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 17:39:273楼 得分:40
    C# code
    public abstract class SqlHelper { //Database connection strings public static readonly string ConnectionStringLocalTransaction = ConfigurationManager.ConnectionStrings["SQLConnString1"].ConnectionString; public static readonly string ConnectionStringInventoryDistributedTransaction = ConfigurationManager.ConnectionStrings["SQLConnString2"].ConnectionString; public static readonly string ConnectionStringOrderDistributedTransaction = ConfigurationManager.ConnectionStrings["SQLConnString3"].ConnectionString; public static readonly string ConnectionStringProfile = ConfigurationManager.ConnectionStrings["SQLProfileConnString"].ConnectionString; // Hashtable to store cached parameters private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable()); public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); using (SqlConnection conn = new SqlConnection(connectionString)) { PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; } } public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; } public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; } public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); SqlConnection conn = new SqlConnection(connectionString); // we use a try/catch here because if the method throws an exception we want to // close the connection throw code, because no datareader will exist, hence the // commandBehaviour.CloseConnection will not work try { PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); cmd.Parameters.Clear(); return rdr; } catch { conn.Close(); throw; } } public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); using (SqlConnection connection = new SqlConnection(connectionString)) { PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters); object val = cmd.ExecuteScalar(); cmd.Parameters.Clear(); return val; } } public static object ExecuteScalar(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters); object val = cmd.ExecuteScalar(); cmd.Parameters.Clear(); return val; } public static void CacheParameters(string cacheKey, params SqlParameter[] commandParameters) { parmCache[cacheKey] = commandParameters; } public static SqlParameter[] GetCachedParameters(string cacheKey) { SqlParameter[] cachedParms = (SqlParameter[])parmCache[cacheKey]; if (cachedParms == null) return null; SqlParameter[] clonedParms = new SqlParameter[cachedParms.Length]; for (int i = 0, j = cachedParms.Length; i < j; i++) clonedParms[i] = (SqlParameter)((ICloneable)cachedParms[i]).Clone(); return clonedParms; } private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms) { if (conn.State != ConnectionState.Open) conn.Open(); cmd.Connection = conn; cmd.CommandText = cmdText; if (trans != null) cmd.Transaction = trans; cmd.CommandType = cmdType; if (cmdParms != null) { foreach (SqlParameter parm in cmdParms) cmd.Parameters.Add(parm); } } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • GhostAdai
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 17:44:174楼 得分:0
    楼上的回答问题都是大篇代码,老衲实在佩服其耐心。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lye2000000_super
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 17:46:415楼 得分:0
        using (SqlConnection connection = new SqlConnection(
                  connectionString))
        {
            SqlCommand command = new SqlCommand(
                "sp_rename", connection);
    command.CommandType = CommandType.StoredProcedure;
    command.Parameters.Add("@objname",SqlDbType.NVarChar).Value = "oldName"
    command.Parameters.Add("@NewName",SqlDbType.NVarChar).Value = "newName"
            connection.Open();
    command.ExecuteNonQuery();
    }
    这是执行系统的修改名字的存储过程的。自己看看吧。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ojlovecd
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 17:47:196楼 得分:0
    引用 4 楼 GhostAdai 的回复:
    楼上的回答问题都是大篇代码,老衲实在佩服其耐心。

    代码贴得多了,对这些问题及代码就越来越熟悉了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • GhostAdai
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 18:21:427楼 得分:0
    引用 6 楼 ojlovecd 的回复:
    引用 4 楼 GhostAdai 的回复:
    楼上的回答问题都是大篇代码,老衲实在佩服其耐心。

    代码贴得多了,对这些问题及代码就越来越熟悉了


    那倒是,呵呵,我回答问题就是懒得贴代码,结果是偶尔想帖点儿代码的时候想不起方法叫什么,参数是什么,只记得大概要用什么-_-b
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • thc1987
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 22:09:368楼 得分:0
    C# code
    public class A //类名为A { public int b(int a,int c)//方法名为b { return (a+c); } } A n=new A(); txtBox1.Text=n.b(1,1).ToString();//调用方法
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • spgoal
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 22:16:209楼 得分:10
      一: 执行不带返回参数(Input)的存储过程
              1: 首先在数据库写个存储过程, 如创建个 addUser存储过程。
                      Create Proc addUser
                      @ID int,
                      @Name varchar(20),
                      @Sex varchar(20)
                      As
                      Insert Into Users Values( @ID, @Name,@Sex )


              2:创建SqlCommand对象,并初始SqlCommand对象 如:
                  SqlCommand cmd = new SqlCommand( );
                  cmd.CommandText = "addUser";    // 制定调用哪个存储过程
                  cmd.CommandType = CommandType.StoredProcedure;    // 制定Sql命令类型是存储过程, 默认的为Sql语句。
                  cmd.Connection = con;    // 设定连接

              3:向SqlCommand对象添加存储过程参数
                SqlParameter param = new SqlParameter( );  // 定义一个参数对象
                param.ParameterName = "@ID";                    // 存储过程参数名称
                param.Value = txtID.Text.Trim();                  // 该参数的值
                cmd.Parameters.Add( param );                        // SqlCommand对象添加该参数对象

                param = new SqlParameter( "@Name", txtName.Text.Trim() );  // 简写方式
                cmd.Parameters.Add( param );

                4:SqlCommand对象调用执行Sql的函数。 如:
                      cmd.ExecuteNonQuery();
             
          二:执行带返回参数(Output)的存储过程
                1: 首先在数据库写个存储过程, 如创建个 queryUser存储过程。
                    alter Proc queryUser
                  @ID int,
                  @Suc varchar(10) output
                  As
                  select @Suc = 'false'
                  if exists( Select * From users where u_id = @ID )
                          select @Suc = 'success'

                2:创建SqlCommand对象,并初始SqlCommand对象 如:
                  SqlCommand cmd = new SqlCommand( );
                  cmd.CommandText = "queryUser";    // 制定调用哪个存储过程
                  cmd.CommandType = CommandType.StoredProcedure;    // 制定Sql命令类型是存储过程, 默认的为Sql语句。
                  cmd.Connection = con;    // 设定连接

                3:向SqlCommand对象添加存储过程参数
                  SqlParameter param1 = new SqlParameter( "@ID", txtID.Text );  // 添加输入参数
                  cmd.Parameters.Add( param1 );

                  SqlParameter param2 = new SqlParameter();        // 添加输出参数
                  param2.ParameterName = "@Suc";                      // 名称
                  param2.SqlDbType = SqlDbType.VarChar;        // 输出参数的Sql类型
                  param2.Size = 10;                                                  // 输出参数的Sql类型大小
                  param2.Direction = ParameterDirection.Output;  // 指定该参数对象为输出参数类型
                  cmd.Parameters.Add( param2 );

                4:SqlCommand对象调用执行Sql的函数。 如:
                      cmd.ExecuteNonQuery();
                      MessageBox.Show( param2.Value.ToString() );  // 输出输出参数的值

    输入参数的存储过程的示例:
      try
      {
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandText = "addUser";
       
        SqlParameter param = new SqlParameter( );
        param.ParameterName = "@ID";
        param.Value = txtID.Text.Trim();
        cmd.Parameters.Add( param );

        param = new SqlParameter( "@Name", txtName.Text.Trim() );
        cmd.Parameters.Add( param );

        param = new SqlParameter();
        param.ParameterName = "@Sex";
        param.Value = txtSex.Text.Trim();
        cmd.Parameters.Add( param );

        //da.InsertCommand = cmd;
       
        if ( cmd.ExecuteNonQuery() == 1 )
        {
        MessageBox.Show( "添加成功" );
        }
        else
        {
        MessageBox.Show("失败");
        }
      }
      catch( SqlException ex )
      {
        MessageBox.Show( ex.Message );
      }



    输出参数的存储过程的示例:
        try
      {
        SqlCommand cmd = new SqlCommand( );
        cmd.CommandText = "queryUser";
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Connection = con;
       
        SqlParameter param1 = new SqlParameter( "@ID", txtID.Text );
        cmd.Parameters.Add( param1 );

        SqlParameter param2 = new SqlParameter();
        param2.ParameterName = "@Suc";
        param2.SqlDbType = SqlDbType.VarChar;
        param2.Size = 10;
        param2.Direction = ParameterDirection.Output;
        cmd.Parameters.Add( param2 );
       
        cmd.ExecuteNonQuery();

        MessageBox.Show( param1.Value.ToString() );
        MessageBox.Show( param2.Value.ToString() );

      }
      catch( SqlException ex )
      {
        MessageBox.Show( ex.Message );
      }

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhang_yugang
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 15:38:1610楼 得分:0
    谢谢你写了这么多。。
    能不能 发下调用的例子看下。。

    马上散分
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zpcoder
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 16:01:5311楼 得分:0

    不用SqlHelper.cs 的人常常问类似的问题。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zpcoder
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 16:04:3512楼 得分:0
    3楼是就是SqlHelper.cs

    请楼主学会用,用会了这就会发现这个帖子的 60 分散得很不值得,呵呵。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved