001-ADO.NET
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的更多相关文章
- 转:ADO.NET连接字符串
名称 ADO.NET连接字符串 说明 ADO.NET连接字符串:SQL Server,SQL Server 2005,ACCESS,Oracle,MySQL,Interbase,IBM DB2,Syb ...
- ADO.NET测试题
第一部分: 新建一个数据库:ADO测试,包含下面两个数据表,使用代码创建,并保留创建的代码文本. 学生表Student: 编号(Code):nvarchar类型,不能为空,主键 姓名(Name):nv ...
- ADO.NET实体数据模型使用探索1
今天研究了下ADO.NET实体数据模型,想写个关于两张有外键关系的增改删查,以此来稍增加点难度. 编程环境:vs2010+sql2005 1.在SQL2005下建立三张表:学生信息表Student(S ...
- ADO.NET与Oracle(一):获取多行记录集
近期接触ADO.NET和Oracle.将我寻常遇到的一些问题和大家共享. 我认为要想入门ADO.NET操作Oracle,最主要的要求就是要会通过ADO.NET更新Oracle中的数据. 该文简单讲些利 ...
- ADO数据库链接
一.数据库操作准备 // --------------------------------------------------------------------------------------- ...
- (转 飛雲若雪)ADO.NET
一.简单介绍ADO.NET System.Data:DataTable,DataSet,DataRow,DataColumn,DataRelation,Constraint System.Data.C ...
- MFC中使用ADO方式连接数据库
文章转自:http://blog.sina.com.cn/s/blog_a43aba5601014z8h.html 一.数据库操作准备 1.导入ADO动态链接库 在工程的stdafx.h中加入如下语句 ...
- ADO.NET 总结
一.简单介绍ADO.NET System.Data:DataTable,DataSet,DataRow,DataColumn,DataRelation,Constraint System.Data.C ...
- ADO.NET连接字符串大全---各种数据库的连接字符串
ADO.NET连接字符串大全 ADO.NET连接字符串 名称 ADO.NET连接字符串 说明 ADO.NET连接字符串:SQL Server,SQL Server 2005,ACCESS,Oracle ...
- ADO.NET连接字符串大全
说明ADO.NET连接字符串:SQL Server,SQL Server 2005,ACCESS,Oracle,MySQL,Interbase,IBM DB2,Sybase,Informix,Ingr ...
随机推荐
- 记 Win10 + Ubuntu18.04 安装
目录 一.准备(一)环境(二)镜像(三)优盘 (四)启动项管理软件EasyBCD(五)启动优盘制作软件(六)分区二.安装 (一)优盘启动(二)安装windows10(三)安装ubuntu18.04(四 ...
- Beta(7/7)
鐵鍋燉腯鱻 项目:小鱼记账 团队成员 项目燃尽图 冲刺情况描述 站立式会议照片 各成员情况 团队成员 学号 姓名 git地址 博客地址 031602240 许郁杨 (组长) https://githu ...
- [PKUSC2018]星际穿越
[PKUSC2018]星际穿越 题目大意: 有一排编号为\(1\sim n\)的\(n(n\le3\times10^5)\)个点,第\(i(i\ge 2)\)个点与\([l_i,i-1]\)之间所有点 ...
- NEERC-2017
A. Archery Tournament 用线段树套set维护横坐标区间内的所有圆,查询时在$O(\log n)$个set中二分查找即可. 时间复杂度$O(n\log^2n)$. #include& ...
- java列表数据基本操作
列表数据组基本的增删改查 package cn.edu.fhj.day002; import java.util.ArrayList; public class ArrList { // 定义一个主函 ...
- swift中Cell的内容定制
1.cellForTitle 2.register
- NOIP-机器翻译
题目描述 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换.对于每个英文单词,软件会先在内存中查 ...
- if-else案例–开关灯
首先,创建一个html页面,添加一个div盒子,用css设置相应的样式,用js获取盒子的元素,通过点击事件,设置body的背景颜色,用if..else来判断当什么状态设置相应的颜色,(swith... ...
- jmeter使用指南:jmeter无脑式指南
一:启动jmeter 二:添加线程组 三:添加 HTTP 请求 四:添加监听器 五:填写访问的域名,并保存 六:运行,查看结果 七:配置多线程.循环机制,进行压力测试
- 电子产品使用感受之——为什么我那么喜欢2015年的11.6寸MacBook Air?
2018年Mac笔记本产品线得到了一次更新,Mac book Pro, MacBook Air更新后的Mac 产品线变得更加让人摸不着头脑,价格昂贵不说,产品分类细化到如此程度,让一个选择困难症的消费 ...