DAL中方法参数很多怎么办

niuniuhuang 2009-05-04 05:18:28
正在做个系统,在DAL里面写查询方法是感觉很不爽,有些查询有很多参数,结果调用查询方法一行都写不完,看起来有点累,大家是怎样解决这个问题的
...全文
197 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
WizardWu 2009-05-05
  • 打赏
  • 举报
回复
List<string>
传一个动态数组即可
takako_mu 2009-05-05
  • 打赏
  • 举报
回复
使用Model類.可以將多個參數放如Model中.
一方晴空 2009-05-05
  • 打赏
  • 举报
回复
参数多,很正常……
lanlan520 2009-05-05
  • 打赏
  • 举报
回复
用实体类!!!!!
lzzz999 2009-05-05
  • 打赏
  • 举报
回复
codesmith用这个生成!~
ssnhjt 2009-05-05
  • 打赏
  • 举报
回复
简单点 实体类对象 Model 就搞定,用不着那么多参数
wuyq11 2009-05-04
  • 打赏
  • 举报
回复
传递实体类List<T>或通过反射实现属性取值,还可通过ORM实现实体类与数据库关联。复杂操作用存储过程
春天的气息 2009-05-04
  • 打赏
  • 举报
回复
传个Model呀!
gyouyang 2009-05-04
  • 打赏
  • 举报
回复
为什么不传 Model??????干嘛传那么多的参数...传个Model多好啊...
蓝海D鱼 2009-05-04
  • 打赏
  • 举报
回复
可以换一种 查询方法, 此为偶的 独门秘笈



private DataTable ExecuteDataTable(string SqlStr, Hashtable SqlParameters,CommandType temType)
{

String getConnectionString = "Application Name=sss;Initial Catalog=DEVDB;Data Source=10.3.1.218;User ID=sa;password=sa;Pooling=True";
SqlConnection sqlConn = new SqlConnection(getConnectionString);
SqlCommand sqlCmd = new SqlCommand(SqlStr);
SqlDataAdapter sqlDA =new SqlDataAdapter();
DataTable dtSql = new DataTable();
try
{
sqlConn.Open();
sqlCmd.Connection = sqlConn;
sqlCmd.CommandType = temType;
if (SqlParameters != null)
{
IDictionaryEnumerator hsEnum = SqlParameters.GetEnumerator();
while (hsEnum.MoveNext())
{
sqlCmd.Parameters.AddWithValue(hsEnum.Key.ToString(), hsEnum.Value);
}
}
sqlDA.SelectCommand = sqlCmd;
sqlDA.Fill(dtSql);
return dtSql;
}
catch (Exception exExact)
{
string error = exExact.Message;
throw new Exception(error, exExact);
}
finally
{
sqlConn.Close();
}
}


protected void Button2_Click(object sender, EventArgs e)
{
Hashtable htParam = new Hashtable();
htParam.Add("@Language", "Chi");

htParam.Add("@CurrencyCode", "RMB");
htParam.Add("@CurrencyUnit", "1.0");
htParam.Add("@Region", "42");
string sqlstr = "spr_Channellist";
DataTable mytable = ExecuteDataTable(sqlstr, htParam, CommandType.StoredProcedure);
this.GridView1.DataSource = mytable;
GridView1.DataBind();


}




private String ExecuteDataValue(string SqlStr, Hashtable SqlParameters)
{

String getConnectionString = "Application Name=IPTV;Initial Catalog=IPTVDEVDB;Data Source=10.3.1.218;User ID=sa;password=sa;Pooling=True";
SqlConnection sqlConn = new SqlConnection(getConnectionString);
SqlCommand sqlCmd = new SqlCommand(SqlStr);
string strRtrn ;
try
{
sqlConn.Open();
sqlCmd.Connection = sqlConn;
sqlCmd.CommandType = CommandType.Text;
if(SqlParameters != null)
{
IDictionaryEnumerator hsEnum = SqlParameters.GetEnumerator();
while(hsEnum.MoveNext())
{
sqlCmd.Parameters.AddWithValue(hsEnum.Key.ToString(), hsEnum.Value);
}
}

strRtrn = Convert.ToString(sqlCmd.ExecuteScalar());
return strRtrn;
}
catch(Exception exExact)
{
string error = exExact.Message;
throw new Exception(error, exExact);
}
finally
{
sqlConn.Close();
}
}


protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
OleDbConnection conn = new OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" + Server.MapPath("") + "\\CODEDB.mdb");
string sql = "select * from Code ";
OleDbDataAdapter oda = new OleDbDataAdapter(sql, conn);
DataSet ds = new DataSet();

oda.Fill(ds);
this.GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
}




sy_binbin 2009-05-04
  • 打赏
  • 举报
回复
实体类
asdf4525qd 2009-05-04
  • 打赏
  • 举报
回复
用参数列表我不觉得很麻烦啊
staywithc 2009-05-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 niuniuhuang 的帖子:]
正在做个系统,在DAL里面写查询方法是感觉很不爽,有些查询有很多参数,结果调用查询方法一行都写不完,看起来有点累,大家是怎样解决这个问题的
[/Quote]
参数那么多就用结构啊
用的时候传一个结构就可以了
llsen 2009-05-04
  • 打赏
  • 举报
回复
用实体类
然后传实体类对象
july358 2009-05-04
  • 打赏
  • 举报
回复
自己写通用的方法,

我们就是自己写的通用的方法,用起来之后真的很简单,不管多么复杂的查询都可以使用,扩展性也很好的
cntenger 2009-05-04
  • 打赏
  • 举报
回复
我也这么做的,目前没找到什么好的方法!!!
先顶
gyouyang 2009-05-04
  • 打赏
  • 举报
回复
用代码生成器...你只管调用就OK了
gyouyang 2009-05-04
  • 打赏
  • 举报
回复
你查什么啊,要传那么多的参数.....昏倒。。。。。
fivecapable 2009-05-04
  • 打赏
  • 举报
回复
可以用参数列表嘛
vlysses 2009-05-04
  • 打赏
  • 举报
回复
把查询sql串提前生成出来
加载更多回复(4)

62,268

社区成员

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

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

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

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