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

yangtzeu 2009-03-22 10:22:57
addnews.aspx对应的后台(用SQL参数化形式添加数据):

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

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

比如,如何将上面这个写成:
public GetParameter()
{
....(如何写?)
}
...全文
132 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
QQ521WW 2010-08-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 gfy4334 的回复:]
曾经看到类似的贴子,
连接SQL\ACCESS\ORACL的类放到一块,加个判断语句,根据不同的数据库选择不同的连接。
[/Quote]
是引用这个。
QQ521WW 2010-08-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 qihaiyan1989 的回复:]
是想用存储过程吗?
[/Quote]
貌似你的这个是答非所问,版主的想法是把SqlParameter[]参数写成一个方法,而你说的还没说完整,我给你个方案,多个数据库实现无缝切换用抽象工厂设计模式。
gfy4334 2009-07-16
  • 打赏
  • 举报
回复
曾经看到类似的贴子,
连接SQL\ACCESS\ORACL的类放到一块,加个判断语句,根据不同的数据库选择不同的连接。
qihaiyan1989 2009-07-16
  • 打赏
  • 举报
回复
是想用存储过程吗?
yangtzeu 2009-03-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wuyq11 的回复:]
通过写数据库操作类实现,实现参数传递。把参数通过list <string>赋值给SqlParameter
[/Quote]

谢谢您,麻烦您能说详细一点吗,“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
wuyq11 2009-03-22
  • 打赏
  • 举报
回复
通过写数据库操作类实现,实现参数传递。把参数通过list<string>赋值给SqlParameter
yangtzeu 2009-03-22
  • 打赏
  • 举报
回复
我的意思是:我现在用的是 SqlParameter[] prams ..
假如我要把数据库换成Access的,得用 OleDbParameter[] prams ...
能不能把这个SqlParameter独立出来房到公共类中,更换数据库后,只需要修改公共类就可以,不改程序文件?
hupengcscs 2009-03-22
  • 打赏
  • 举报
回复
我写了一个调用存储过程的公共方法(输入输出参数不同,返回的结果集都是不定的),不知道和你想要的是不是一样。
hupengcscs 2009-03-22
  • 打赏
  • 举报
回复
不太懂你的意思。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧