页面上有多个datalist需要绑定到数据源。如:
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
string strCom1 = "SELECT name,id FROM Emporium ";
SqlCommand selCom1 = new SqlCommand(strCom1, myConnection);
System.Data.SqlClient.SqlDataReader dr;
myConnection.Open();
dr = selCom1.ExecuteReader();
Datalist1.DataSource = dr;
Datalist1.DataBind();
dr.Close();
string strCom2 = "SELECT id,sort FROM sort ";
SqlCommand selCom2 = new SqlCommand(strCom2, myConnection);
System.Data.SqlClient.SqlDataReader dr2;
dr2 = selCom2.ExecuteReader();
DataList2.DataSource = dr2;
DataList2.DataBind();
dr2.Close();
string strCom3 = "SELECT top 8 shopname as name ,url ,substring(title,1,10) as title2 FROM info where zn='0' ORDER BY id DESC";
SqlCommand selCom3 = new SqlCommand(strCom3, myConnection);
System.Data.SqlClient.SqlDataReader dr3;
dr3 = selCom3.ExecuteReader();
DataList3.DataSource = dr3;
DataList3.DataBind();
dr3.Close();
问题是如何重用上面的那一段绑定代码,可否写一段函数,传递给它不同的参数,获得不同的结果。
???
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
string strCom1 = "SELECT name,id FROM Emporium ";
SqlCommand selCom1 = new SqlCommand(strCom1, myConnection);
System.Data.SqlClient.SqlDataReader dr;
myConnection.Open();
dr = selCom1.ExecuteReader();
Datalist1.DataSource = dr;
Datalist1.DataBind();
dr.Close();
string strCom2 = "SELECT id,sort FROM sort ";
SqlCommand selCom2 = new SqlCommand(strCom2, myConnection);
System.Data.SqlClient.SqlDataReader dr2;
dr2 = selCom2.ExecuteReader();
DataList2.DataSource = dr2;
DataList2.DataBind();
dr2.Close();
string strCom3 = "SELECT top 8 shopname as name ,url ,substring(title,1,10) as title2 FROM info where zn='0' ORDER BY id DESC";
SqlCommand selCom3 = new SqlCommand(strCom3, myConnection);
System.Data.SqlClient.SqlDataReader dr3;
dr3 = selCom3.ExecuteReader();
DataList3.DataSource = dr3;
DataList3.DataBind();
dr3.Close();
问题是如何重用上面的那一段绑定代码,可否写一段函数,传递给它不同的参数,获得不同的结果。
???
当然可以,
public void binddata(DataList dl, string strsql)
{
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand selCom = new SqlCommand(strsql, connection);
System.Data.SqlClient.SqlDataReader dr = selCom.ExecuteReader(); dl.datasource= dr;
dl.databind();
dr.close();}调用就不说了
myConnection.close();
private void databind(string strCom,Datalist datalist)
{ ...省去}
//调用
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
databind( "SELECT name,id FROM Emporium ",Datalist1);我用这个方法时,重新生成解决方案:
-------找不到类型或命名空间名称“Datalist”(是否缺少 using 指令或程序集引用?)
-提示找不到这样的类型,怎么办?????
Datalist 是DataList
{
SqlConnection myConnection = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand selCom = new SqlCommand(strsql, myConnection);
System.Data.SqlClient.SqlDataReader dr = selCom.ExecuteReader(); dl.DataSource= dr;
dl.DataBind();
dr.Close();
myConnection.Close();}
这样就应该没有语法错误了
binddata("SELECT name,id FROM Emporium ",Datalist1) ;
binddata("SELECT id,sort FROM sort ",Datalist2) ;
binddata("SELECT top 8 shopname as name ,url ,substring(title,1,10) as title2 FROM info where zn='0' ORDER BY id DESC",DataList3)