首页 新闻 会员 周边 捐助

存储过程参数封装的问题 没什么豆 大侠帮忙看下吧 没怎么搞过这个

0
悬赏园豆:5 [已解决问题] 解决于 2012-08-28 09:08

代码:

 public bool RunProcedure(string procedureName,string "参数")
        {
            SqlConnection _con = new SqlConnection(con);
            SqlCommand comm = new SqlCommand(procedureName, _con);
            try
            {
                _con.Open();
                comm.CommandType = CommandType.StoredProcedure;
                comm.Parameters.Add(new SqlParameter("@name", SqlDbType.VarChar));
                comm.Parameters["@name"].Value = 4;
                comm.Parameters.Add(new SqlParameter("@age", SqlDbType.VarChar));
                comm.Parameters["@age"].Value = 4;
                comm.Parameters.Add(new SqlParameter("@sex", SqlDbType.VarChar));
                comm.Parameters["@sex"].Value = 4;
                comm.Parameters.Add(new SqlParameter("@address", SqlDbType.VarChar));
                comm.Parameters["@address"].Value = 4;
                int result = comm.ExecuteNonQuery();
                if (result > 0)
                {
                    return true;
                }
                return false;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                _con.Dispose();
                _con.Close();
            }
        }

中间的这个红色字体的:

comm.Parameters.Add 里面参数都是写死的 我希望的是能写成变量 是我调用的时候传递的变量 ,这个方法怎么封装啊?大侠们明白我的意思吗?

这个写法行吗?我在网上看的

SqlConnection conn = new SqlConnection(connectionstring);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = conn;
da.SelectCommand.CommandText ="NameOfProcedure(’para1’,’para2’,para3)";
da.Selectcommand.CommandType = CommandType.StoredProcedure;
para1 para2 para3 就是变量
s_p的主页 s_p | 初学一级 | 园豆:140
提问于:2012-08-25 17:20
< >
分享
最佳答案
0

void MySqlParametersMothod(string paraName , SqlDbType type,string paraValue)
{
comm.Parameters.Add(new SqlParameter(paraName , type));
                comm.Parameters[paraName].Value =paraValue);

}

试试吧,希望能帮到你~!

收获园豆:3
西夏普砖家 | 初学一级 |园豆:183 | 2012-08-26 00:21
其他回答(1)
0

你直接根据类型,拼sql语句得了。

一般可以把DbParameter数组作为参数传递,这样就不需要在函数内部去拼接了。

收获园豆:2
幻天芒 | 园豆:37207 (高人七级) | 2012-08-25 17:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册