ADO.NET
数据库连接类 SqlConnection
- Data Source=.;
- Initial Catalog=myDataBase;
- User Id=myUsername;
- Password=myPassword;
或者
- Server=myServerAddress;
- Database=myDataBase;
- User Id=myUsername;
- Password=myPassword;
- Trusted_Connection=False;
using (SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=sa;database=MyCar"))
{
//打开连接
conn.Open();
//将执行的sql
String sql = "select COUNT(*) from Car";
//创建命令对象,指定要执行sql语句与连接对象conn
SqlCommand cmd = new SqlCommand(sql, conn);
//执行查询返回单行单列的值,Object类型
Object result = cmd.ExecuteScalar();
//显示结果到标签
lblCount.Text = result.ToString();
}
数据库操作类 SqlCommand
1. ExecuteNonQuery()
执行一个SQL语句
返回受影响的行数
这个方法主要用于执行对数据库执行增加、更新、删除操作
注意查询的时候不是调用这个方法
String sql =
"INSERT INTO"+
"Car([Title] ,[Speed] ,[Info])"+
"VALUES(@Ttile,@Speed,@Info)";
//创建命令对象,指定要执行sql语句与连接对象conn
SqlCommand cmd = new SqlCommand(sql,conn);
//指定参数
cmd.Parameters.Add(new SqlParameter("@Ttile", txtTitle.Text));
cmd.Parameters.Add(new SqlParameter("@Speed", txtSpeed.Text));
cmd.Parameters.Add(new SqlParameter("@Info", txtInfo.Text));
//执行,返回影响行数
int rows=cmd.ExecuteNonQuery();
2. ExecuteScalar()
从数据库检索单个值
这个方法主要用于统计操作
ExecuteScalar()这个方法是针对SQL语句执行的结果是一行一列的结果集
这个方法只返回查询结果集的第一行第一列。
3. ExecuteReader()
用于实现只进只读的高效数据查询。
ExecuteReader:返回一个SqlDataReader对象
可以通过这个对象来检查查询结果,它提供了只进只读的执行方式,即从结果中读取一行之后,移动到另一行,则前一行就无法再用。有一点要注意的是执行之后,要等到手动去调用Read()方法之后,DataReader对象才会移动到结果集的第一行,同时此方法也返回一个Bool值,表明下一行是否可用,返回True则可用,返回False则到达结果集末尾。
使用DataReader可以提高执行效率,有两种方式可以提高代码的性能:
一种是基于序号的查找
一个是使用适当的Get方法来查找。
可以通过定位列的位置来查找记录。
GetOrdinal() 方法,此方法接收一个列名并返回此列名所在的列号.
using (SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=sa;database=MyCar"))
{
conn.Open();
String sql = "select Id,Title,Speed,Info from Car";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader sdr = cmd.ExecuteReader();
//下移游标,读取一行,如果没有数据了则返回false
while (sdr.Read())
{
Console.WriteLine("编号:"
+ sdr["Id"]
+ ",车名:"
+ sdr["Title"]
+ ",速度:"
+ sdr["Speed"]);
}
}
网友评论