当前位置:编程学习 > C#/ASP.NET >>

如何将SqlParameter其写成公共类,在其他具体页面方便调用?

addnews.aspx对应的后台(用SQL参数化形式添加数据):

SqlParameter[] prams = 
{
  data.MakeInParam("@id",  SqlDbType.VarChar, 20, ID),
  ....
}

如何将SqlParameter其写成公共类?(我是不想在具体程序中带有SqlParameter,SQLConnection这种具体数据库特征)

比如,如何将上面这个写成:
public GetParameter()
{
  ....(如何写?)
} --------------------编程问答-------------------- 不太懂你的意思。 --------------------编程问答-------------------- http://www.svnhost.cn/Article/Detail-26.shtml --------------------编程问答-------------------- 我写了一个调用存储过程的公共方法(输入输出参数不同,返回的结果集都是不定的),不知道和你想要的是不是一样。 --------------------编程问答-------------------- 我的意思是:我现在用的是 SqlParameter[] prams ..
假如我要把数据库换成Access的,得用 OleDbParameter[] prams ...
能不能把这个SqlParameter独立出来房到公共类中,更换数据库后,只需要修改公共类就可以,不改程序文件? --------------------编程问答-------------------- 通过写数据库操作类实现,实现参数传递。把参数通过list<string>赋值给SqlParameter --------------------编程问答--------------------
引用 5 楼 wuyq11 的回复:
通过写数据库操作类实现,实现参数传递。把参数通过list <string>赋值给SqlParameter


谢谢您,麻烦您能说详细一点吗,“list <string>赋值给SqlParameter”如何写?


补充,MakeInParam的方法是这样的,如何把SqlParameter也独立出来。
 
#region   传入参数并且转换为SqlParameter类型
    /// <summary>
    /// 转换参数
    /// </summary>
    /// <param name="ParamName">存储过程名称或命令文本</param>
    /// <param name="DbType">参数类型</param></param>
    /// <param name="Size">参数大小</param>
    /// <param name="Value">参数值</param>
    /// <returns>新的 parameter 对象</returns>
    public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)
    {
        return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
    }
    /// <summary>
    /// 初始化参数值
    /// </summary>
    /// <param name="ParamName">存储过程名称或命令文本</param>
    /// <param name="DbType">参数类型</param>
    /// <param name="Size">参数大小</param>
    /// <param name="Direction">参数方向</param>
    /// <param name="Value">参数值</param>
    /// <returns>新的 parameter 对象</returns>
    public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
    {
        SqlParameter param;
        if (Size > 0)
        {
            param = new SqlParameter(ParamName, DbType, Size);
        }
        else
        {
            param = new SqlParameter(ParamName, DbType);
        }
        param.Direction = Direction;
        if (!(Direction == ParameterDirection.Output && Value == null))
        {
            param.Value = Value;
        }
        return param;
    }
    #endregion
--------------------编程问答--------------------   是想用存储过程吗? --------------------编程问答-------------------- 曾经看到类似的贴子,
连接SQL\ACCESS\ORACL的类放到一块,加个判断语句,根据不同的数据库选择不同的连接。 --------------------编程问答--------------------
引用 7 楼 qihaiyan1989 的回复:
是想用存储过程吗?

貌似你的这个是答非所问,版主的想法是把SqlParameter[]参数写成一个方法,而你说的还没说完整,我给你个方案,多个数据库实现无缝切换用抽象工厂设计模式。 --------------------编程问答--------------------
引用 8 楼 gfy4334 的回复:
曾经看到类似的贴子,
连接SQL\ACCESS\ORACL的类放到一块,加个判断语句,根据不同的数据库选择不同的连接。

是引用这个。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,