Web.config

   <connectionStrings>
<add name="connStr" connectionString="server=.;database=MyWeb;uid=sa;pwd=123"/>
</connectionStrings>

SqlHelper.cs

     /// <summary>
/// SqlHelper(数据库帮助类)
/// </summary>
public static class SqlHelper
{
/// <summary>
/// SQL连接字符串
/// </summary>
private static string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
/// <summary>
/// 获取数据库列表数据
/// </summary>
/// <param name="sql">SQL语句</param>
/// <param name="ps">SQL参数</param>
/// <returns>返回DataTable</returns>
public static DataTable GetList(string sql, params SqlParameter[] ps)
{
//创建Sql连接对象(参数:连接字符串)
using (SqlConnection conn = new SqlConnection(connStr))
{
//填充DataSet和更新SQL Server数据库(一组数据命令,一个数据库连接)
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
//设置存储过程,在数据源中选择记录
sda.SelectCommand.Parameters.AddRange(ps);
//表示内存中数据的一个表
DataTable dt = new DataTable();
//添加或刷新指定范围中的行DataSet,以匹配中使用数据源的那些DataTable名称
sda.Fill(dt);
//返回表数据
return dt;
}
}
/// <summary>
/// 执行SQL查询,并返回受影响的行数
/// </summary>
/// <param name="sql">SQL语句</param>
/// <param name="ps">SQL参数</param>
/// <returns>返回受影响的行数</returns>
public static int ExecuteNonQuery(string sql, params SqlParameter[] ps)
{
//创建Sql连接对象(参数:连接字符串)
using (SqlConnection conn = new SqlConnection(connStr))
{
//表示对SQL Server数据库执行Sql语句或存储过程
SqlCommand cmd = new SqlCommand(sql, conn);
//对命令传入参数
cmd.Parameters.AddRange(ps);
//打开数据库连接
conn.Open();
//执行Sql语句,返回受影响的行数
return cmd.ExecuteNonQuery();
}
}
/// <summary>
/// 执行查询,返回结果集中第一行的第一列
/// </summary>
/// <param name="sql">SQL语句</param>
/// <param name="ps">SQL参数</param>
/// <returns>返回结果集第一行的第一列</returns>
public static object ExecuteScalar(string sql, params SqlParameter[] ps)
{
//创建Sql连接对象(参数:连接字符串)
using (SqlConnection conn = new SqlConnection(connStr))
{
//对SQL Server数据库执行Sql语句
SqlCommand cmd = new SqlCommand(sql, conn);
//传入命令参数
cmd.Parameters.AddRange(ps);
//打开数据库
conn.Open();
//返回结果集第一行的第一列
return cmd.ExecuteScalar();
}
}
}

CantusDal.cs

     /// <summary>
/// Lrc歌词数据层
/// </summary>
public class CantusDal : ICantusDal
{
/// <summary>
/// 获取数据库列表数据.Dal
/// </summary>
/// <returns></returns>
public List<Cantus> GetList()
{
//sql查询语句
string sql = "select * from cantus";
//创建内存数据库表,接收查询到的数据
DataTable dt = SqlHelper.GetList(sql);
//创建List<Cantus>泛型集合
List<Cantus> list = new List<Cantus>();
//循环遍历(DataTable每一行数据)
foreach (DataRow row in dt.Rows)
{
//list集合添加数据单元
list.Add(new Cantus()
{
Id = Convert.ToInt32(row["Id"]),//Id(id)
Serial = Convert.ToByte(row["Serial"]),//Serial(曲目)
Song = row["Song"].ToString(),//Song(歌词)
Album = row["Album"].ToString(),//Album(专辑)
Number = (short)row["Number"],//Number(张数)
Date = Convert.ToDateTime(row["Date"]),//Date(年份)
Writer = row["Writer"].ToString(),//Writer(作词)
Composer = row["Composer"].ToString(),//Composer(作曲)
Arranger = row["Arranger"].ToString(),//Arranger(编曲)
Singing = row["Singing"].ToString(),//Singing(原唱)
Lyric = row["Lyric"].ToString()//Lyric(歌词)
});
}
return list;
}
/// <summary>
/// 添加数据
/// </summary>
/// <returns></returns>
public bool Add(Cantus ct)
{
string sql = "insert into cantus values(@Serial,@Song,@Album,@Number,@Date,@Writer,@Composer,@Arranger,@Singing,@Lyric)";
SqlParameter[] ps = {
new SqlParameter("@Serial",ct.Serial),
new SqlParameter("@Song",ct.Song),
new SqlParameter("@Album",ct.Album),
new SqlParameter("@Number",ct.Number),
new SqlParameter("@Date",ct.Date),
new SqlParameter("@Writer",ct.Writer),
new SqlParameter("@Composer",ct.Composer),
new SqlParameter("@Arranger",ct.Arranger),
new SqlParameter("@Singing",ct.Singing),
new SqlParameter("@Lyric",ct.Lyric),
};
return SqlHelper.ExecuteNonQuery(sql, ps) > ;
}
}

CantusBll.cs

     /// <summary>
/// 业务逻辑层.BLL
/// </summary>
public class CantusBll : ICantusBll
{
/// <summary>
/// 声明Dal操作对象
/// </summary>
private CantusDal ctDal;
/// <summary>
/// 构造函数()
/// </summary>
public CantusBll()
{
//创建Dal操作对象
ctDal = new CantusDal();
}
/// <summary>
/// 返回数据层获取的数据
/// </summary>
/// <returns></returns>
public List<Cantus> GetList()
{
return ctDal.GetList();
}
/// <summary>
/// 添加数据
/// </summary>
/// <param name="ct"></param>
/// <returns></returns>
public bool Add(Cantus ct)
{
return ctDal.Add(ct);
}
}

BackController.cs

     public class BackController : Controller
{
CantusBll ctBll = new CantusBll();
// GET: Back
public ActionResult Index()
{
List<Cantus> ct = ctBll.GetList();
JavaScriptSerializer js = new JavaScriptSerializer();
string result = js.Serialize(ct);
Response.Write(result);
return View();
}
}

001-ADO.NET的更多相关文章

  1. 转:ADO.NET连接字符串

    名称 ADO.NET连接字符串 说明 ADO.NET连接字符串:SQL Server,SQL Server 2005,ACCESS,Oracle,MySQL,Interbase,IBM DB2,Syb ...

  2. ADO.NET测试题

    第一部分: 新建一个数据库:ADO测试,包含下面两个数据表,使用代码创建,并保留创建的代码文本. 学生表Student: 编号(Code):nvarchar类型,不能为空,主键 姓名(Name):nv ...

  3. ADO.NET实体数据模型使用探索1

    今天研究了下ADO.NET实体数据模型,想写个关于两张有外键关系的增改删查,以此来稍增加点难度. 编程环境:vs2010+sql2005 1.在SQL2005下建立三张表:学生信息表Student(S ...

  4. ADO.NET与Oracle(一):获取多行记录集

    近期接触ADO.NET和Oracle.将我寻常遇到的一些问题和大家共享. 我认为要想入门ADO.NET操作Oracle,最主要的要求就是要会通过ADO.NET更新Oracle中的数据. 该文简单讲些利 ...

  5. ADO数据库链接

    一.数据库操作准备 // --------------------------------------------------------------------------------------- ...

  6. (转 飛雲若雪)ADO.NET

    一.简单介绍ADO.NET System.Data:DataTable,DataSet,DataRow,DataColumn,DataRelation,Constraint System.Data.C ...

  7. MFC中使用ADO方式连接数据库

    文章转自:http://blog.sina.com.cn/s/blog_a43aba5601014z8h.html 一.数据库操作准备 1.导入ADO动态链接库 在工程的stdafx.h中加入如下语句 ...

  8. ADO.NET 总结

    一.简单介绍ADO.NET System.Data:DataTable,DataSet,DataRow,DataColumn,DataRelation,Constraint System.Data.C ...

  9. ADO.NET连接字符串大全---各种数据库的连接字符串

    ADO.NET连接字符串大全 ADO.NET连接字符串 名称 ADO.NET连接字符串 说明 ADO.NET连接字符串:SQL Server,SQL Server 2005,ACCESS,Oracle ...

  10. ADO.NET连接字符串大全

    说明ADO.NET连接字符串:SQL Server,SQL Server 2005,ACCESS,Oracle,MySQL,Interbase,IBM DB2,Sybase,Informix,Ingr ...

随机推荐

  1. Python运算符——复合运算符

    就相当于算数运算符的后面加一个“=” 例:+= num = num+5   可以写成  num += 5 就是说,等式右边含有左边的变量名,就可以直接去掉,然后右边的符号移到左边去 同样的“-=  / ...

  2. php接入支付宝的流程(转载)

    php接入支付宝的流程写在这里供像我一样的小白参考. 1.首先要有一个创建一个应用(选好自己想要的功能,关于支付的功能,貌似都需要签约) 2.下载SDK&Dome(网址https://doc. ...

  3. 微信小程序--家庭记账本开发--03

    组件.标签以及模板的使用 在一个微信小程序中,需要用到大量的组件,一些页面的设计也需要模板,在自己所学课程中,对于一些组件.标签模板的使用有了初步的了解. 1.组件 组件是数据和方法的简单封装,对于微 ...

  4. 【Linux】-- Linux上java运行环境的配置(JDK+TOMCAT)

    1.JDK安装 安装之前首先要查询软件是否存可以直接使用yum安装 yum search java | grep open 选择需要的版本安装 注意:*星号代表下载该版本的所有文件,不能少. 验证是否 ...

  5. 阿里云服务器端配置TensorFlow & jupyter

    在阿里云上搭建爬取某信的公众号文章的程序时,发现需要验证码验证,技穷之后考虑做一个验证码识别程序,所以开始在服务器上搭建机器学习平台,背景,服务器上已经有其他应用在跑着了,所以不想停服,初始环境:ce ...

  6. CentOS 7 下安装 teamviewer 13

    CentOS 版本:centos-release-7-4.1708.el7.centos.x86_64(通过 rpm -q centos-release 查询) teamviewer 版本:teamv ...

  7. 网页布局之grid

    学习网格布局时,你可能会在网络上看到很多文章,内容不同,属性不同,真是让人摸不着头脑,到底哪个才是正确的?看了本篇文章,我想你会豁然开朗.比如,一会儿用grid-rows,一会儿用grid-defin ...

  8. C#超简单自定义事件

    我知道你为啥点进来,所以不要犹豫了,立刻马上果断创建控制台项目,直接复制下面精干短小而又强大的代码运行: using System; using System.Collections.Generic; ...

  9. 最大子矩阵和问题dp

    给定一个矩阵 matrix,其中矩阵中的元素可以包含正数.负数.和0,返回子矩阵的最大累加和.例如,矩阵 matrix 为: 0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 - ...

  10. RHEL5.8安装

    创建完成后新的虚拟机.使用光盘启动后,启动界面如下图. 大概介绍下显示界面内容的意思:     1.To install or upgrade in graphical mde, press the ...