ASP.NET ADO.NET数据访问技术(一使用Command对象执行)

【SQLConnection类】

常用方法:

Open:打开数据库连接

Close:关闭数据库连接

常用属性:

ConnectionString:设置打开SQL Server数据库的字符串

State:判断数据库的连接状态:Broken、Closed、Connecting、Fetching、open

DataSource:要连接的SQL Server实例的名称

DataBase:要进行操作的数据库名称

【Command对象】

重用属性:

Connection:连接数据库,相当于与数据库有联系了,只对将对哪个数据库进行操作了

CommandText:SQL语句

CommandType:指定对数据库的操作类型或请求

CommandTimeOut:确定Command对象的Execute方法运行的最长等待时间,缺省值为30秒。

State:设置Command对象的状态

常用方法:

Execute:有两种,分别使用于不同的情况

ExecuteNonQuery

增删改操作

ExecuteReader

查询操作

【DataAdapter对象】

DataAdapter相当于DataSet和数据源之间的桥梁,应用程序通过DataAdapter对象从数据库中读取数据到DataSet中

常用属性:

SelectCommand、InsertCommand、DeleteCommadn、UpdateCommand

重用方法:

Fill:执行SelectCommand,用数据源的数据填充DataSet对象

Update:对DataSet对象中每个插入行、更新行或删除行分别调用InsertCommand.UpdateCommand.DeleteCommand,将DataSet中更改的内容更新到初始的数据源中

【DataReader】

其实DataReader是一个读取数据库的指针,从数据库中表的上面往下一行一行的对

常用属性“

FieldCount:读取的一行数据中的字段数

常用方法:

read():让记录指针指向本结果集中的下一条记录,返回值为bool

GetValue(该行对应列的索引值int):因为不知道对应列的数据类型,所以返回类型是object类型,需要强制转换,只有开始read()读后,才能进行此方法,先读后取

获得指定字段:此方法必需提前直到要获取字段的类型,GetString(索引值)、GetInt32(索引值)等

【DataSet】

DataSet相当于内存中暂存的一个数据库,不仅包括多张表,还包括数据表之间的约束

包括多个子类,其中最常见的有一下几个:

DataRow:数据表,用来存储数据,一个数据集可包含多张表

DataRow:数据行,数据表中的一行记录

DataColumn:数据列,数据表中的一列记录

--------------------- 作者:王如霜 来源:CSDN 原文:https://blog.csdn.net/wrs120/article/details/72751429?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!

使用Connection连接数据库

方法一:

先在web.configzhong中,将<connectionStrings/>标记用下面代码替换
<connectionStrings>
    <add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;
    AttachDbFilename=|DataDirectory|\mydatabase.mdf;Integrated Security=True; User         
     Instance=True"/>
</connectionStrings>

其中Data Source 表示SQL Server数据库服务器名称,AttachDbFilename表示数据库的路径和文件名,|DataDirectory|表示网站默认数据库路径App_Data。

一:
using System.Data.SqlClient;
using System.Configuration;
二:
//从web.config配置文件去除数据库连接串
string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

三:
//建立数据库连接对象
SqlConnection sqlconn = new SqlConnection(sqlconnstr);

四:
//打开连接对象
sqlconn.Open();

五:
//SQL命令赋值
sqlcommand.CommandText = "select * from student";

六:
//建立DataReader对象,并返回查询结果
SqlDataReader sqldatareader = sqlcommand.ExecuteReader();
//获取结果集的第一行记录(0代表第一个字段的值)
while(sqldatareader.Read())
{
    //sqldatareader.GetString(0)或者sqldatareader.GetDateTime(0)
    //来获取想要获取的
}

七:
//关闭连接
sqlcommand = null;
sqlconn.Close();
sqlconn = null;

方法二:

SqlConnection con = new SqlConnection("server=.;database=Vote;uid=sa;pwd=123456");//建立数据库连接对象
con.Open();//打开连接
SqlCommand cmd = new SqlCommand("select * from voteMaster where voteSum>=@voteSum", con);//建立command对象,代表可以对数据库操作了
SqlParameter para = new SqlParameter("@voteSum", SqlDbType.Int);
para.Value = 1;
cmd.Parameters.Add(para);//添加参数

获取查询结果

使用DataReader对象,一行一行的读取查询结果,并获得相应列的值

//建立DataReader对象,并返回查询结果
SqlDataReader sqldatareader = sqlcommand.ExecuteReader();
//获取结果集的第一行记录(0代表第一个字段的值)
while(sqldatareader.Read())
{
    //sqldatareader.GetString(0)或者sqldatareader.GetDateTime(0)
    //来获取想要获取的
}

使用ExecuteNonQuery()执行增删改,返回受影响行数

sqlcommand.ExecuteNonQuery();

sql语句的一些特殊写法

//可以为特定的值添加标记如:
sqlcommand.CommandText = "insert into student(Name,Sex,birthday) values(@Name,@Sex,@birthday)";

//解释@Name,@Sex,@birthday
sqlcommand.Parameters.AddWithValue("@Name",textBox1.Text);
sqlcommand.Parameters.AddWithValue("@Sex",textBox2.Text);
sqlcommand.Parameters.AddWithValue("@birthday",textBox3.Text);

猜你喜欢

转载自blog.csdn.net/weixin_38420342/article/details/82998518