欢迎来到天天文库
浏览记录
ID:37858572
大小:62.00 KB
页数:7页
时间:2019-06-01
《ADO.NET学习笔记(教程)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ADO.NET连接SQLSERVER数据库连接字符串:DataSource=localhost;AttchDBFilename=
2、DataDirectory
3、Database1.mdf;InitialCatalog=UserDate;IntegratedSecurity=True参数说明:DataSource表示数据源,其值为服务器地址和实例名,如果是正式版则不用加SQLEXPRESS,如果是免费版,必须加上SQLEXPRESS,即连接本机可以写成“.SQLEXPRESS”;AttchDBFilename表示附加数据库,其值为附加数据库的地址,DataDi
4、rectory代表当前项目目录下的App_data目录,是数据库的默认存储路径;InitialCatalog为数据库,其值为当前连接所要连接的数据库名称注:如果要使用Sqlconnection对象,必须导入System.Data.Sqlclient命名空间ADO.NET中的连接等资源都实现了IDisposable接口,可以使用using进行资源管理。也可以使用try……catch语句块括起来,但是using是最简单的。代码语句:using(SqlConnectioncon=newSqlConnection("DataSource=localhost;Initi
5、alCatalog=UserDate;IntegratedSecurity=True")){程序语句块;}或者:SqlConnectioncnn=newSqlConnection();//创建SqlConnection对象的一个实例cnn.ConnectionString="DataSource=localhost;InitialCatalog=UserDate;IntegratedSecurity=True";cnn.Open();注:using的作用是及时的释放资源,在花括号结束的时候,程序会自动释放语句所申请的内存,以达到程序的最优。通过SqlComma
6、nd对象执行SQL语句SqlCommand对象可以执行SQL语句完成对数据库的增、删、改、查等数据操作。在SqlCommand类中,最主要的属性有CommandText,该属性用于接收要执行的SQL语句,例如cmd.CommandText="INSERTINTOb1(name,company,position,shijian)VALUES(@Name,@Company,@Position,@Datetime)",除了CommandText属性,主要还有Connection属性,用来接收数据库连接,还有Transaction属性,用来接收事物。其还有三个比较常用
7、的方法,第一个是ExecuteNonQuery()方法,主要用来提交无查询结果的SQL语句,如UPDATE,INSERT,DELETE等语句,其返回值为数据库中被SQL语句影响的行数,第二个是ExecuteReader()方法,主要用来提交SELECT语句,返回值是一个数据流,里面是SELECT语句的查询结果,可以用SqlDataReader对象来接收,然后调用其Read()方法来逐行读出查询结果。第三个是ExexuteScalar()方法,主要也是用来提交SELECT语句,但是其返回值是查询结果的第一行第一列,所以适用于例如COUNT等聚合查询。SQL注入与
8、参数化查询SQL注入是通过特殊的SQL语句非法获取数据库的内容。为了保证系统不被黑客进行SQL注入攻击,在SqlCommand执行SQL语句时,可以对提交的数据先进行参数化处理,参数化处理主要是通过SqlCommand对象的Parameters属性的Add方法来完成,参数化处理有两种方法,第一种既是在“执行Insert操作”中提到的,还有另外一种代码如下:cmd.CommandText="INSERTINTOb1(name,company,position,shijian)VALUES(@Name,@Company,@Position,@Datetime)";
9、cmd.Parameters.Add(newSqlParameter("Name",Name.Text));cmd.Parameters.Add(newSqlParameter("Company",Company.Text));cmd.Parameters.Add(newSqlParameter("Position",Position.Text));cmd.Parameters.Add(newSqlParameter("Datetime",DateTime.Parse(Datetime.Text)));cmd.ExecuteNonQuery();注:以上的代码
10、中需要注意一点,在第一种代码中,显示的
此文档下载收益归作者所有