#region 从数据库中提取数据到CheckBoxList控件
/// <summary>
/// 从数据库中提取数据到CheckBoxList控件
/// </summary>
/// <param name="strTableName">数据库表名称</param>
/// <param name="strFieldName">数据库字段名称</param>
/// <param name="strIDName">数据库ID名称</param>
/// <param name="MyCheckBoxList"></param>
/// <returns>执行结果</returns>
public bool GetLoadList(string strTableName, string strFieldName, string strIDName, CheckBoxList MyCheckBoxList)
{
// 数据库连接参数(对客户端应用程序配置文件的访问)
string strConn = @ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
// 数据库类型参数(对客户端应用程序配置文件的访问)
string strDBType = @ConfigurationManager.ConnectionStrings["myConnectionString"].ProviderName;
// 数据库的一个连接
IDbConnection myConn;
// 创建提供程序对数据源类的实现的实例
System.Data.Common.DbProviderFactory MyFactory = System.Data.Common.DbProviderFactories.GetFactory(strDBType);
// 创建连接数据库的一个打开连接
myConn = MyFactory.CreateConnection();
// 获取或设置用于打开数据库的字符串
myConn.ConnectionString = strConn;
try
{
// 使用 ConnectionString 所指定的属性设置打开数据库连接
myConn.Open();
// 数据库SQL语句
string strSQL = @"SELECT " + strIDName + "," + strFieldName + " FROM " + strTableName.ToString().Trim().ToString() + " ORDER BY " + strFieldName + " DESC";
// 数据库类型
switch (strDBType)
{
/* ------------------------------------------------------------------------------------------------ */
/* 使用SqlServer数据库 */
/* ------------------------------------------------------------------------------------------------ */
case "System.Data.SqlClient":
// 创建要对数据库执行的一个SQL语句或存储过程
SqlCommand mySqlComm;
// 连接到数据源时执行的 SQL 语句
mySqlComm = (SqlCommand)myConn.CreateCommand();
// 设置数据库连接超时
mySqlComm.CommandTimeout = 0;
// 指定如何解释命令字符串
mySqlComm.CommandType = CommandType.Text;
// 数据库SQL语句
mySqlComm.CommandText = strSQL;
// 提供一种从数据库读取只进的一种方式
SqlDataReader mySqlReader = mySqlComm.ExecuteReader();
// 从集合中移除所有 ListItem 对象
MyCheckBoxList.Items.Clear();
// 读取数据,判断是否有数据
if (mySqlReader.HasRows)
{
// 返回数据库记录到数据源
MyCheckBoxList.DataSource = mySqlReader;
// 获取或设置为列表项提供文本内容的数据源字段
MyCheckBoxList.DataTextField = strFieldName;
// 获取或设置为各列表项提供值的数据源字段
MyCheckBoxList.DataValueField = strIDName;
// 创建服务器控件属性与数据源之间的绑定
MyCheckBoxList.DataBind();
// 关闭
if ((mySqlReader != null) || (mySqlReader.IsClosed != true))
{
// 关闭
mySqlReader.Close();
}
// 释放内存
mySqlReader.Dispose();
// 返回 成功
return true;
}
else
{
// 清除内容
MyCheckBoxList.Items.Clear();
if ((mySqlReader != null) || (mySqlReader.IsClosed != true))
{
// 关闭
mySqlReader.Close();
}
// 释放内存
mySqlReader.Dispose();
}
break;
/* ------------------------------------------------------------------------------------------------ */
/* 使用Access数据库 */
/* ------------------------------------------------------------------------------------------------ */
case "System.Data.OleDb":
// 创建要对数据库执行的一个SQL语句或存储过程
OleDbCommand MyOleDbComm;
// 连接到数据源时执行的 SQL 语句
MyOleDbComm = (OleDbCommand)myConn.CreateCommand();
// 设置数据库连接超时
MyOleDbComm.CommandTimeout = 0;
// 指定如何解释命令字符串
MyOleDbComm.CommandType = CommandType.Text;
// 数据库SQL语句
MyOleDbComm.CommandText = strSQL;
// 提供一种从数据库读取只进的一种方式
OleDbDataReader MyOleDbReader = MyOleDbComm.ExecuteReader();
// 从集合中移除所有 ListItem 对象
MyCheckBoxList.Items.Clear();
// 读取数据,判断是否有数据
if (MyOleDbReader.HasRows)
{
// 返回数据库记录到数据源
MyCheckBoxList.DataSource = MyOleDbReader;
// 获取或设置为列表项提供文本内容的数据源字段
MyCheckBoxList.DataTextField = strFieldName;
// 获取或设置为各列表项提供值的数据源字段
MyCheckBoxList.DataValueField = strIDName;
// 创建服务器控件属性与数据源之间的绑定
MyCheckBoxList.DataBind();
// 关闭
if ((MyOleDbReader != null) || (MyOleDbReader.IsClosed != true))
{
// 关闭
MyOleDbReader.Close();
}
// 释放内存
MyOleDbReader.Dispose();
// 返回 成功
return true;
}
else
{
// 清除内容
MyCheckBoxList.Items.Clear();
if ((MyOleDbReader != null) || (MyOleDbReader.IsClosed != true))
{
// 关闭
MyOleDbReader.Close();
}
// 释放内存
MyOleDbReader.Dispose();
}
break;
/* ------------------------------------------------------------------------------------------------ */
/* 使用Odbc数据库 */
/* ------------------------------------------------------------------------------------------------ */
case "System.Data.Odbc":
// 创建要对数据库执行的一个SQL语句或存储过程
OdbcCommand MyOdbcComm;
// 连接到数据源时执行的 SQL 语句
MyOdbcComm = (OdbcCommand)myConn.CreateCommand();
// 设置数据库连接超时
MyOdbcComm.CommandTimeout = 0;
// 指定如何解释命令字符串
MyOdbcComm.CommandType = CommandType.Text;
// 数据库SQL语句
MyOdbcComm.CommandText = strSQL;
// 提供一种从数据库读取只进的一种方式
OdbcDataReader MyOdbcReader = MyOdbcComm.ExecuteReader();
// 从集合中移除所有 ListItem 对象
MyCheckBoxList.Items.Clear();
// 读取数据,判断是否有数据
if (MyOdbcReader.HasRows)
{
// 清除内容
MyCheckBoxList.Items.Clear();
// 返回数据库记录到数据源
MyCheckBoxList.DataSource = MyOdbcReader;
// 获取或设置为列表项提供文本内容的数据源字段
MyCheckBoxList.DataTextField = strFieldName;
// 获取或设置为各列表项提供值的数据源字段
MyCheckBoxList.DataValueField = strIDName;
// 创建服务器控件属性与数据源之间的绑定
MyCheckBoxList.DataBind();
// 关闭
if ((MyOdbcReader != null) || (MyOdbcReader.IsClosed != true))
{
// 关闭
MyOdbcReader.Close();
}
// 释放内存
MyOdbcReader.Dispose();
// 返回 成功
return true;
}
else
{
// 清除内容
MyCheckBoxList.Items.Clear();
if ((MyOdbcReader != null) || (MyOdbcReader.IsClosed != true))
{
// 关闭
MyOdbcReader.Close();
}
// 释放内存
MyOdbcReader.Dispose();
}
break;
default:
break;
}
// 返回失败
return false;
}
catch (SqlException Exp) // 数据库操作异常处理
{
// 异常信息
Console.Write(Exp.Message.ToString());
if (myConn.State == ConnectionState.Open)
{
// 关闭数据库连接
myConn.Close();
}
// 释放内存
myConn.Dispose();
// 返回失败
return false;
}
catch (OleDbException Exp) // 数据库操作异常处理
{
// 异常信息
Console.Write(Exp.Message.ToString());
if (myConn.State == ConnectionState.Open)
{
// 关闭数据库连接
myConn.Close();
}
// 释放内存
myConn.Dispose();
// 返回失败
return false;
}
catch (OdbcException Exp) // 数据库操作异常处理
{
// 异常信息
Console.Write(Exp.Message.ToString());
if (myConn.State == ConnectionState.Open)
{
// 关闭数据库连接
myConn.Close();
}
// 释放内存
myConn.Dispose();
// 返回失败
return false;
}
catch (Exception Exp) // 异常处理
{
// 异常信息
Console.Write(Exp.Message.ToString());
if (myConn.State == ConnectionState.Open)
{
// 关闭数据库连接
myConn.Close();
}
// 释放内存
myConn.Dispose();
// 返回失败
return false;
}
finally // 执行完毕清除在try块中分配的任何资源
{
if (myConn.State == ConnectionState.Open)
{
// 关闭数据库连接
myConn.Close();
}
// 释放内存
myConn.Dispose();
}
}
#endregion
从数据库中提取数据到CheckBoxList控件(SqlClient/OleDb/Odbc)
最新推荐文章于 2019-08-09 12:33:37 发布