ADO.NET
各类对象
- SqlConnection=>数据库连接器
- SqlCommand=>数据库执行对象
- SqlCommandBuilder=>生成SQL命令
- DataReader=>数据读取
- DatAdapter=>DataSet和数据源之间的桥梁
- SqlParameter=>参数
- SqlTransaction=>存储过程
标准的连接操作过程
// 定义连接字符串
string connStr = "Server=.;database=Db_Tank;user=sa;pwd=qaz123..";
// 创建连接对象
SqlConnection conn = new SqlConnection(connStr);
// 开启连接
conn.Open();
// State表示连接状态
if(conn.State==System.Data.ConnectionState.Open)
{
Console.WriteLine("数据库连接成功!");
}
// 关闭连接
conn.Close();
// 资源释放
conn.Dispose();
Command对象
// Command对象用来执行SQL操作命令,也可用于执行存储过程
string sql = "SELECT COUNT(*) FROM SHOP_GOODS";
// 方式1
//SqlCommand cmd = conn.CreateCommand();
//cmd.CommandText = sql;
// 方式2
SqlCommand cmd = new SqlCommand(sql, conn);
int count = (int)cmd.ExecuteScalar();
Console.WriteLine("查询到的数据有{0}条",count);
ExecuteNonQuery()
返回受影响的行数,一般用于对数据库的增加、更新、删除操作
ExecuteScalar()
从数据库检索单个值,主要用于统计操作
ExecuteReader()
// 用于只进只读的高效数据查询,返回一个SqlDatReader对象
string sql = "SELECT * FROM SHOP_GOODS WHERE TemplateID < @Templateid";
SqlParameter parameter = new SqlParameter(
"@Templateid",100);
SqlCommand comm = conn.CreateCommand();
comm.CommandText = sql;
comm.Parameters.Add(parameter);
SqlDataReader reader = comm.ExecuteReader();
while(reader.Read())
{
Console.WriteLine(reader["Name"]);
}
// 问题 当SqlParameter的第二个参数为0时,默认会把第二个参数当作SqlDbType枚举的重载,所以如果第二个参数要填写0,需要改成"0"
本文系作者 @jiang 原创发布在 IT梦。未经许可,禁止转载。