asp.net封装mysql工具类,在页面上引用读取的数据

技术教程2019/11/3 18:58:38阅读:792

asp.net连接SQLserver和access很方便,直接用自带的SQLdatasource控件就行了,但是连接mysql数据库就要麻烦一些。


先介绍asp.net连接mysql数据库的步骤。


1引用MySql.Data.dll库文件,这个库文件提供了连接mysql数据库的类,不引用不行,具体的自行百度。


2在web.config中配置连接字符串


<connectionStrings>


<add name="DBConnection" connectionString="server=localhost;user id=root;password=1234;database=dlkj;character set=utf8;pooling=true;"


providerName="MySql.Data.MySqlClient" />


</connectionStrings>


3在后台用代码连接数据库即可


//通过配置文件得到连接字符串


public static string connectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString;


MySqlConnection connection = new MySqlConnection(connectionString);


MySqlCommand cmd = new MySqlCommand(strSQL, connection);


try


{


connection.Open();


MySqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);


return myReader;


}


其实和操作SQLserver步骤差不多的。这样就能够操作mysql数据库了。

接着封装了一个查询方法


/// <summary>


/// 执行查询语句,返回MySqlDataReader


/// </summary>


/// <param name="strSQL">查询语句</param>


/// <returns>MySqlDataReader</returns>


public static MySqlDataReader ExecuteReader(string strSQL)


{


MySqlConnection connection = new MySqlConnection(connectionString);


MySqlCommand cmd = new MySqlCommand(strSQL, connection);


try


{


connection.Open();


MySqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);


return myReader;


}


catch (MySql.Data.MySqlClient.MySqlException e)


{


throw e;


}


}


返回一个reader,这样查询数据的时候就很方便了。


接着针对数据库中一个表,用类设计一个模型。


比如文章表:


public class Article


{


public string title { get; set; }


public string content { get; set; }


public string sub_image { get; set; }


public string type { get; set; }


}


其次要查询获得很多个文章记录,所以封装了一下方法以便得到一个包含文章对象的list


private void FillArticleList(string v)


{


MySqlDataReader reader = MySqlHelper.ExecuteReader(v);


while (reader.Read())


{


Article article = new Article();


article.title = reader[1].ToString();


article.content = reader[2].ToString();


article.sub_image = reader[3].ToString();


article.type = reader[4].ToString();


//注意此处的list是一个全局变量哟


Article_list.Add(article);


}


reader.Close();


}


直接在pageload的时候调用这个方法就能将查询的数据填充到一个list<Article>中了。


然后在页面中引用:


<ul>


<%


for (int i = 0; i < Article_list.Count; i++)


{


if(i == 3)


{


break;


}


Response.Write("<li>");


Response.Write("<a href=''><img src='" + Article_list[i].sub_image + "' alt=''/></a>");


Response.Write("<h2><a href=''>" + Article_list[i].title + "</a></h2>");


Response.Write("<p>" + Article_list[i].content + "</p>");


Response.Write("</li>");


}


%>


</ul>


在页面中直接就能引用到页面后台类文件中定义的变量,这样可以动态生成内容。很方便。

本文系网站原创,转载请注明文章链接地址