1、using(){}
using(){}相当于打开了try{}finally{Dispose();}
2、connection连接最晚打开,最早关闭原则,可以节省资源
3、command对象
方法:
ExecuteNonQuery()--insert、delete、update语句时,返回影响的行数,执行其他语句时永远返回-1
ExecuteScalar()--当执行返回单个结果时。当sql语句执行聚合函数时,返回值不可能为null,因为聚合函数不会返回null。但如果不是聚合函数,有可能返回null,那么在使用返回变量时就需要先判断是否为null
ExecuteReader()--当查询多行,多列结果时
4、数据库连接基础步骤
(1)连接字符串
(2)创建连接对象
(3)sql语句字符串
(4)创建Sqlcommand对象
(5)打开连接
(6)执行
5、Convert.ToInt32()比(int)更能避免异常
6、代码练习
#region 数据库连接测试
//1、连接字符串
string connStr = "Data Source=localhost;Initial Catalog=newssystem;Uid=sa;Password=jingdao@123";
//2、创建连接对象
using (SqlConnection conn = new SqlConnection(connStr))
{
//3、打开连接
conn.Open();
Console.Write("连接成功");
}
#endregion
#region 插入数据
//1、连接字符串
string connStr = "Data Source=localhost;Initial Catalog=newssystem;Uid=sa;Password=jingdao@123";
//2、创建连接对象
using (SqlConnection conn = new SqlConnection(connStr))
{
//3、sql字符串
string sqlStr = "INSERT INTO dbo.category( name )VALUES ( '时政新闻' )";
//4、创建Sqlcommand对象
using (SqlCommand cmd=new SqlCommand(sqlStr,conn))
{
//5、打开连接
conn.Open();
//6、执行
int r = cmd.ExecuteNonQuery();
Console.Write("成功插入{0}条数据", r);
}
}
#endregion
#region 查询表中数据行数
//1、连接字符串
string connStr = "Data Source=localhost;Initial Catalog=newssystem;Uid=sa;Password=jingdao@123";
//2、创建连接对象
using (SqlConnection conn=new SqlConnection(connStr))
{
//3、sql字符串
string sqlStr = "SELECT COUNT(*) FROM dbo.category WITH(NOLOCK)";
//4、创建Sqlcommand对象
using (SqlCommand cmd=new SqlCommand(sqlStr,conn))
{
//5、打开连接
conn.Open();
//6、执行,使用ExecuteSalar方法
object r =Convert.ToInt32( cmd.ExecuteScalar());
Console.Write("表中有{0}条数据", r);
}
}
#endregion