根据给定的信息,本文将详细解释C#中用于连接数据库并执行查询操作的代码片段。本文将重点关注如何在C#应用程序中实现与SQL Server及Access数据库的连接,并通过示例展示如何利用这些连接来获取数据。 ### C#连接数据库:概述 在C#中连接数据库是开发桌面应用、Web应用等时常见的需求。C#提供了多种方式来实现这种功能,其中最常用的是通过ADO.NET。ADO.NET是一个用于访问关系型数据库的数据访问技术,它为数据库访问提供了一个灵活且强大的框架。 ### 连接数据库的方法 #### 使用`SqlConnection`连接SQL Server数据库 在C#中,要连接SQL Server数据库,可以使用`System.Data.SqlClient`命名空间下的`SqlConnection`类。下面是一个简单的例子: ```csharp using System; using System.Data; using System.Data.SqlClient; public class DataBase { private SqlConnection con = null; public DataBase(string connectionString) { con = new SqlConnection(connectionString); } public DataSet ReturnDS(string sql) { DataSet ds = new DataSet(); try { SqlCommand cmd = new SqlCommand(sql, con); cmd.CommandTimeout = 20; con.Open(); SqlDataAdapter adapter = new SqlDataAdapter(cmd); adapter.Fill(ds, "tempTable"); } catch (Exception e) { throw(e); ds = null; } finally { con.Close(); } return ds; } } ``` 在上面的代码中,首先定义了一个`SqlConnection`对象来存储连接信息。接着,在构造函数中初始化了这个连接对象。`ReturnDS`方法用于执行SQL查询并返回结果集(`DataSet`)。 #### 使用`OleDbConnection`连接Access数据库 除了SQL Server外,C#还可以轻松地与Access数据库进行交互。这里使用`System.Data.OleDb`命名空间中的`OleDbConnection`类。下面是相应的代码示例: ```csharp using System; using System.Data; using System.Data.OleDb; public class DataBase { private OleDbConnection conn = null; public DataBase(string connectionString) { conn = new OleDbConnection(connectionString); } public DataSet ReturnDS(string sql) { DataSet ds = new DataSet(); try { OleDbCommand cmd = new OleDbCommand(sql, conn); cmd.CommandTimeout = 20; conn.Open(); OleDbDataAdapter adapter = new OleDbDataAdapter(cmd); adapter.Fill(ds, "tempTable"); } catch (Exception e) { throw(e); ds = null; } finally { conn.Close(); } return ds; } } ``` 这段代码与前面的`SqlConnection`类似,只是使用的类和命名空间有所不同。 ### 数据库连接枚举 为了简化代码并提供更灵活的选择,可以在一个类中定义一个枚举类型来区分不同类型的数据库连接: ```csharp public enum dbType { sql, access } public class DataBase { private SqlConnection con = null; private OleDbConnection conn = null; private dbType cType; public DataBase(string connectionString, dbType type) { this.cType = type; if (type == dbType.sql) con = new SqlConnection(connectionString); else if (type == dbType.access) conn = new OleDbConnection(connectionString); } // 其他方法... } ``` 通过这种方式,可以根据传入的`dbType`值动态选择不同的连接类型。 ### 总结 本文介绍了如何在C#中实现对SQL Server和Access数据库的连接,并展示了如何执行SQL查询来获取数据。通过使用`SqlConnection`和`OleDbConnection`,开发者可以方便地在C#应用程序中集成数据库功能。此外,通过定义一个枚举类型来区分不同的数据库类型,可以进一步提高代码的灵活性和可维护性。
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;
namespace DB
{
/// <summary>
/// DataBase 的摘要说明。
/// </summary>
/// <summary>
/// 数据库连接类型
/// </summary>
public enum dbType
{
/// <summary>
/// SQL数据库
/// </summary>
sql,
/// <summary>
/// access数据库
/// </summary>
access
}
public class DataBase
{
// 连接数据源
private SqlConnection con = null;
private OleDbConnection conn = null;
dbType cType;
public DataBase(string conStr,dbType type)
{
this.cType = type;
if(type == dbType.sql)
con = new SqlConnection(conStr);
else if(type == dbType.access)
conn = new OleDbConnection(conStr);
}
/// <summary>
/// 根据SQL查询返回DataSet对象,如果没有查询到则返回NULL
/// </summary>
/// <param name="sql">查询语句</param>
/// <returns>DataSet</returns>
public DataSet returnDS(string sql)
{
DataSet ds=new DataSet();
try
{
if(cType == dbType.sql)
{
SqlCommand cmd =new SqlCommand(sql,con);
cmd.CommandTimeout=20;
this.Open();
SqlDataAdapter adapter=new SqlDataAdapter(cmd);
adapter.Fill(ds,"tempTable");
剩余10页未读,继续阅读
- 粉丝: 2
- 资源: 14
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助