ADO.NET是Microsoft .NET Framework中提供的用于访问数据源的技术,可以用于访问关系型数据库(如SQL Server、MySQL等)和非关系型数据库(如XML)。下面将详细讲解ADO.NET的使用攻略。
准备工作
首先,需要在项目中添加对System.Data.dll程序集的引用,这个程序集包含了与ADO.NET有关的一些命名空间(如System.Data和System.Data.SqlClient)。
连接数据库
要访问数据库,首先需要建立一个连接。连接字符串(Connection String)用于指定连接的参数,包括要连接的数据库的类型、名称、用户名和密码等。常用的连接字符串格式为:
Data Source=[服务器名];Initial Catalog=[数据库名];User ID=[用户名];Password=[密码];
示例代码:
string connStr = "Data Source=localhost;Initial Catalog=MyDatabase;User ID=sa;Password=123456;";
SqlConnection conn = new SqlConnection(connStr);
上面的代码创建了一个SqlConnection对象,它表示与指定的数据库建立连接。如果连接成功,则可通过其它对象访问数据库中的数据,否则会抛出异常。
执行SQL语句
有两种方法可以执行SQL语句,分别是ExecuteNonQuery和ExecuteScalar。
ExecuteNonQuery方法
ExecuteNonQuery方法用于执行没有返回结果的SQL语句,如INSERT、UPDATE、DELETE等。执行成功后,该方法返回影响的行数。
string sql = "DELETE FROM MyTable WHERE ID=1";
SqlCommand cmd = new SqlCommand(sql, conn);
int rowsAffected = cmd.ExecuteNonQuery();
上面的代码执行了一条DELETE语句,删除MyTable表中ID为1的记录,并返回影响的行数。
ExecuteScalar方法
ExecuteScalar方法用于执行一条SQL语句并返回结果集中第一行第一列的值。
string sql = "SELECT COUNT(*) FROM MyTable";
SqlCommand cmd = new SqlCommand(sql, conn);
int count = (int)cmd.ExecuteScalar();
上面的代码执行了一条SELECT COUNT(*)语句,返回MyTable表中的行数。
查询数据
查询数据需要用到SqlDataReader对象和SqlCommand对象。
string sql = "SELECT * FROM MyTable WHERE Age>20";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
int id = (int)reader["ID"];
string name = reader["Name"].ToString();
int age = (int)reader["Age"];
Console.WriteLine("{0},{1},{2}", id, name, age);
}
reader.Close();
上面的代码执行了一个SELECT语句,查询MyTable表中年龄大于20的记录,并将ID、Name和Age字段的值打印出来。
示例一:插入数据
string sql = "INSERT INTO MyTable (Name,Age) VALUES(@Name,@Age)";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@Name", "张三");
cmd.Parameters.AddWithValue("@Age", 25);
int rowsAffected = cmd.ExecuteNonQuery();
上面的代码向MyTable表中插入一条记录,姓名为“张三”,年龄为25。
示例二:更新数据
string sql = "UPDATE MyTable SET Age=30 WHERE Name='张三'";
SqlCommand cmd = new SqlCommand(sql, conn);
int rowsAffected = cmd.ExecuteNonQuery();
上面的代码更新了MyTable表中姓名为“张三”的记录,将其年龄改为30。
综上所述,以上是ADO.NET数据库访问技术的完整攻略,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ADO.NET数据库访问技术 - Python技术站