sql语句绑定重复麻烦事情(高分悬爽,来者即是客)

threejek 2008-11-19 08:31:54
初学者.这是我在首页显示的内容,这样重复写我感觉不对,应该怎么做好呢.有个朋友发了一个SQLHelper.cs类文件,叫我用这个
另外请解绍一下SQLHelper.cs用法,高分悬爽


if (!IsPostBack)
{
SqlConnection conn = view.createCon(); //显示四栏内容
conn.Open();
string sql = "select top 8 * from siteinfo";
SqlDataAdapter sds = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
sds.Fill(ds);
DataTable dt= (ds.Tables[0]);
Label1.Text = dt.Rows[0]["s1"].ToString();
Label2.Text = dt.Rows[0]["s2"].ToString();
Label3.Text = dt.Rows[0]["s3"].ToString();
Label4.Text = dt.Rows[0].ToString();

string sqlnews = "select * from News where NewsClass='1'";//显示帮助新闻
SqlDataAdapter sda = new SqlDataAdapter(sqlnews, conn);
DataSet dsnews = new DataSet();
sda.Fill(dsnews);
DataTable dtnews = (dsnews.Tables[0]);
rpt_sitenews.DataSource = dtnews;
rpt_sitenews.DataBind();
string sqlnews2 = "select * from News where NewsClass='2'";//显示网站动态新闻
SqlCommand cmd = new SqlCommand(sqlnews2, conn);
SqlDataReader sdr = cmd.ExecuteReader();
Repeater1.DataSource = sdr;
Repeater1.DataBind();
conn.Close();

...全文
166 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
prettyabby 2008-11-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 kfps8kfps8 的回复:]
建议用SQLHelper
[/Quote]
封装,能公用的就公用.

比如你可以写一个方法返回DataTable,传一个sql语句做参数
编程有钱人了 2008-11-20
  • 打赏
  • 举报
回复
up
threejek 2008-11-20
  • 打赏
  • 举报
回复
看来我还是没有完全理解ADO.NET
Hashxu 2008-11-19
  • 打赏
  • 举报
回复
兄弟阿,你还是好好理解三层开发模式吧。
http://www.cnblogs.com/eddie005/archive/2006/08/01/workingwithdata_aspnet2.html
lovehongyun 2008-11-19
  • 打赏
  • 举报
回复
public DataTable GetTableBySql(string sql)
{
SqlConnection conn = view.createCon();
SqlDataAdapter sds = new SqlDataAdapter(sql, conn);
DataTable dt = new DataTable();
sds.Fill(dt);
return dt;
}


if (!IsPostBack)
{


DataTable dt= GetTableBySql("select top 8 * from siteinfo");
Label1.Text = dt.Rows[0]["s1"].ToString();
Label2.Text = dt.Rows[0]["s2"].ToString();
Label3.Text = dt.Rows[0]["s3"].ToString();
Label4.Text = dt.Rows[0].ToString();

string sqlnews = "select * from News where NewsClass='1'";//显示帮助新闻
DataTable dtnews = GetTableBySql(sqlnews );
rpt_sitenews.DataSource = dtnews;
rpt_sitenews.DataBind();

...........


用sqlhelper或是其它的封装好的类,都是这样用的,在这不多举例了.可以在网上找些资料看看
qinhl99 2008-11-19
  • 打赏
  • 举报
回复
用SQLHelper或者DbHeplerSQL
oec2003 2008-11-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 threejek 的帖子:]
另外请解绍一下SQLHelper.cs用法
[/Quote]

在你的项目中添加这个这个类
helper类中的方法一般都是静态方法
直接 SQLHelper.方法名(参数) 就可以
brooklyng60 2008-11-19
  • 打赏
  • 举报
回复
在SQLHELPER里面哟很多返回不同类型的方法,按照你上面的就可以
if (!IsPostBack)
{
DataTable dt= Sqlhelper.ExeDataSet("select top 8 * from siteinfo",connstring).tables[0];
Label1.Text = dt.Rows[0]["s1"].ToString();
Label2.Text = dt.Rows[0]["s2"].ToString();
Label3.Text = dt.Rows[0]["s3"].ToString();
Label4.Text = dt.Rows[0].ToString();

rpt_sitenews.DataSource = Sqlhelper.ExeDataSet("select * from News where NewsClass='1'",connstring).tables[0];
rpt_sitenews.DataBind();

Repeater1.DataSource = Sqlhelper.ExeDataSet("select * from News where NewsClass='2'",connstring).tables[0];
Repeater1.DataBind();
}这样就行了.具体的连接关闭都不用管了,他帮你做了,只需要输入语句和连接字符串就行了
lovehongyun 2008-11-19
  • 打赏
  • 举报
回复
封装,能公用的就公用.

比如你可以写一个方法返回DataTable,传一个sql语句做参数
等等..
如果对ado.net比较熟的话.写这种类没问题.
用sqlhelper也没什么问题.
kfps8kfps8 2008-11-19
  • 打赏
  • 举报
回复
建议用SQLHelper
wuyq11 2008-11-19
  • 打赏
  • 举报
回复
SqlHelper类是用于通过一组静态方法来封装数据访问功能,在反复编写相同的数据访问代码使用到该类非常方便.
参考:
http://blog.csdn.net/feishan/archive/2007/03/05/1520985.aspx
swort_177 2008-11-19
  • 打赏
  • 举报
回复
重构 重复代码简化
jiang_jiajia10 2008-11-19
  • 打赏
  • 举报
回复
还有建议你减少代码的冗余,把要用的写到一个方法里不好么,传几个参数过去。
oec2003 2008-11-19
  • 打赏
  • 举报
回复
确实应该用SQLHelper
SQLHelper 就是对数据访问的一些封装 ,传入一些参数 返回dataset datareader 等
也可以根据自己的需求写个helper类
jiang_jiajia10 2008-11-19
  • 打赏
  • 举报
回复
这样写

foreach(DataRow dr in ds.Tables[0]){
Label1.Text = dr["字段名"].ToString();
Label2.Text = dr["字段名"].ToString();
Label3.Text = dr["字段名"].ToString();
Label4.Text = dr["字段名"]ToString();
}
Fibona 2008-11-19
  • 打赏
  • 举报
回复
SQLHelper一般都是

先初始化,连接,执行语句,并返回DataTable,DataSet,DataReader等

你看一下类里面有那些方法,把你上面的语句,转换成对应的方法不就行了,省了N大堆的事情了

62,268

社区成员

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

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

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

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