| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 456 人关注过本帖
标题:关于数据库通用类的的问题
只看楼主 加入收藏
tokoyoshi
Rank: 2
等 级:论坛游民
帖 子:99
专家分:67
注 册:2009-10-24
结帖率:87.1%
收藏
已结贴  问题点数:10 回复次数:4 
关于数据库通用类的的问题
我想写一个数据库访问的通用类,现在下面是部分代码
        private SqlCommand BuildQueryCommand(string storedProcName, IDataParameter[] parameters)
        {
            SqlCommand cmd=new SqlCommand(storedProcName,conn);
            
            if (parameters.Length>1)
            {
                foreach (SqlParameter parameter in parameters)
                {
                    cmd.Parameters.Add(parameter);
                }
            }

            return cmd;
        }




        private SqlCommand BuildCommand(string storedProcname, IDataParameter[] parameters)
        {
            SqlCommand cmd=BuildQueryCommand(storedProcname, parameters);
            cmd.Parameters.Add(new SqlParameter("ReturnValue",SqlDbType.Int,4,ParameterDirection.ReturnValue,false,0,0,string.Empty,DataRowVersion.Default,null));
            return cmd;
        }



       public SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters)
        {
            SqlDataReader dr;
            conn.Open();
            SqlCommand cmd=BuildQueryCommand(storedProcName,parameters);
            
            dr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
            return dr;
        }

 上面的三个类是相关连的,所以列出,问题在下面的类

  public List<UserInfo> testSELEL(string storedProcname,params string[] intput)
        {
            List<UserInfo> list=new List<UserInfo>();
            if (intput.Length==0)
            {
               
            }
           //SqlParameter na=new SqlParameter("@name",name);
          // SqlParameter pa=new SqlParameter("@pass",pass);
           IDataParameter[] pre =new IDataParameter[0];
        //
        //
        //
        //
        //   
            return list;
        }

这个类我没写完,因为我没有思路了,params参数是存储过程的里的参数,我不能确定要调用那个存储过程,所以不能确定参数的个数,要怎么才能解决这个问题,是在里面判断参数的个数再调用相应的方法,还是可以有其他的思路,希望大家可以帮忙,不能写代码的给个思路也行··谢谢·


[ 本帖最后由 tokoyoshi 于 2009-10-24 17:44 编辑 ]
搜索更多相关主题的帖子: 数据库 
2009-10-24 17:37
jedypjd
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1096
专家分:4969
注 册:2009-7-27
收藏
得分:0 
三个方法有啥不一样

天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
2009-10-24 19:59
tokoyoshi
Rank: 2
等 级:论坛游民
帖 子:99
专家分:67
注 册:2009-10-24
收藏
得分:0 
返回值都不一样·肯定有区别啊·······
2009-10-26 08:56
domon
Rank: 3Rank: 3
来 自:河南
等 级:论坛游侠
帖 子:92
专家分:191
注 册:2009-10-26
收藏
得分:10 
在方法参数的地方加上params关键字,这样你传的参数就不限制个数了,改成这样:
private SqlCommand BuildQueryCommand(string storedProcName, params IDataParameter[] parameters)
初来乍到,希望可以帮到你

希望,是走出来的!!!
2009-10-26 14:00
tokoyoshi
Rank: 2
等 级:论坛游民
帖 子:99
专家分:67
注 册:2009-10-24
收藏
得分:0 
SqlParameter[] sqlpa=new SqlParameter[count];
            if (count>0)
            {
                for (int i=0; i<count; i++)
                {
                    sqlpa[i]=new SqlParameter(par[i], param[i]);
                }
                pr=new IDataParameter[sqlpa.Length];
                sqlpa.CopyTo(pr,0);
            }

浪费了我一个早晨青春,解决了··还是要多看msdn···不过还是谢谢domon·····
2009-10-26 16:38
快速回复:关于数据库通用类的的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041829 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved