📄 cdqa.cs
字号:
/*
* CDQA.cs
*
* 作者:邱观琛
* 创建时间:2002-5-28
* 最后修改:2002-6-21
*
*
* 提供一些对数据库进行快速访问的函数,例如取得一条或多条记录中的某一字段的值,
* 设置一条或多条记录中的某一字段的值,根据ID快速得到记录,等等。
*
*/
using System;
using System.Collections;
using System.Data;
using System.Data.SqlClient;
namespace CFC
{
/// <summary>
/// 提供一些对数据库进行快速访问的函数。
/// 调用任何成员函数时必须先调用类CDO中的函数Connect连接数据库。
/// </summary>
public class CDQA
{
private CDQA()
{
}
#region public static object[] GetColumnData(string ColumnName, string Sql) : 在执行指定sql查询产生的记录集中,取得所有记录在指定字段上的值,并生成object数组存储
/// <summary>
/// 在执行指定sql查询产生的记录集中,取得所有记录在指定字段上的值,并生成object数组存储。
/// </summary>
/// <param name="ColumnName">需要取值的字段名</param>
/// <param name="Sql">被执行以获得需取值的记录集的sql查询</param>
/// <returns>保存取出的值的object数组</returns>
public static object[] GetColumnData(string ColumnName, string Sql)
{
try
{
SqlDataReader sdr = CDO.GetDataReader(Sql);
if (CError.HaveError()) return new object[0];
ArrayList SemiResult = new ArrayList();
while (sdr.Read())
SemiResult.Add(sdr.GetValue(sdr.GetOrdinal(ColumnName)));
object[] Result = new object[SemiResult.Count];
SemiResult.CopyTo(Result);
return Result;
}
catch (Exception e)
{
CError.ErrorMsg = e.Message;
return new object[0];
}
}
#endregion
#region public static object GetColumnDataSingleRow(string ColumnName, string Sql) : 在执行指定sql查询产生的单行记录集中,取得这一条记录在指定字段上的值
/// <summary>
/// 在执行指定sql查询产生的单行记录集中,取得这一条记录在指定字段上的值。
/// </summary>
/// <param name="ColumnName">需要取值的字段名</param>
/// <param name="Sql">被执行以获得需取值的记录的sql查询</param>
/// <returns>保存取出的值的object变量</returns>
public static object GetColumnDataSingleRow(string ColumnName, string Sql)
{
try
{
SqlDataReader sdr = CDO.GetDataReaderSingleRow(Sql);
if (CError.HaveError()) return null;
if (sdr.Read())
{
return sdr.GetValue(sdr.GetOrdinal(ColumnName));
}
else
{
return null;
}
}
catch (Exception e)
{
CError.ErrorMsg = e.Message;
return null;
}
}
#endregion
#region public static object GetColumnDataByID(string ColumnName, string TableName, decimal ID) : 根据ID查出表中的一条记录,取得该记录在指定字段上的值
/// <summary>
/// 根据ID查出表中的一条记录,取得该记录在指定字段上的值。
/// </summary>
/// <param name="ColumnName">需要取值的字段名</param>
/// <param name="TableName">表名</param>
/// <param name="ID">需要取值的记录的ID</param>
/// <returns>保存取出的值的object变量</returns>
public static object GetColumnDataByID(string ColumnName, string TableName, decimal ID)
{
string Sql = String.Format("select {0}ID,{1} from {0} where {0}ID='{2}'",TableName,ColumnName,ID);
return GetColumnData(ColumnName,Sql);
}
#endregion
#region public static DataTable GetColumnDataIntoDataTable(string ColumnName, string Sql) : 在执行指定sql查询产生的记录集中,取得所有记录在指定字段上的值,并生成DataTable存储
/// <summary>
/// 在执行指定sql查询产生的记录集中,取得所有记录在指定字段上的值,并生成DataTable存储。
/// </summary>
/// <param name="ColumnName">需要取值的字段名</param>
/// <param name="Sql">被执行以获得需取值的记录集的sql查询</param>
/// <returns>保存取出的值的DataTable</returns>
public static DataTable GetColumnDataIntoDataTable(string ColumnName, string Sql)
{
try
{
SqlDataReader sdr = CDO.GetDataReader(Sql);
if (CError.HaveError()) return null;
DataTable dtResult = new DataTable();
dtResult.Columns.Add(ColumnName);
while (sdr.Read())
{
dtResult.Rows.Add(new object[] {sdr.GetValue(sdr.GetOrdinal(ColumnName))});
}
return dtResult;
}
catch (Exception e)
{
CError.ErrorMsg = e.Message;
return null;
}
}
#endregion
#region public static void SetColumnData(string ColumnName, string Sql, object NewValue) : 在执行指定sql查询产生的DataTable中,修改所有记录中指定字段上的值
/// <summary>
/// 在执行指定sql查询产生的DataTable中,修改所有记录中指定字段上的值。
/// </summary>
/// <param name="ColumnName">需要修改值的字段名</param>
/// <param name="Sql">被执行以获得需修改的记录的sql查询</param>
/// <param name="NewValue">新值</param>
public static void SetColumnData(string ColumnName, string Sql, object NewValue)
{
try
{
DataTable dt = CDO.GetDataTable(Sql);
if (CError.HaveError()) return;
foreach (DataRow dr in dt.Rows)
{
dr[ColumnName] = NewValue;
}
CDO.UpdateDataTable(Sql,dt);
}
catch (Exception e)
{
CError.ErrorMsg = e.Message;
return;
}
}
#endregion
#region public static void SetColumnDataSingleRow(string ColumnName, string Sql, object NewValue) : 在执行指定sql查询产生的记录集中,修改第一条记录中指定字段上的值
/// <summary>
/// 在执行指定sql查询产生的记录集中,修改第一条记录中指定字段上的值。
/// </summary>
/// <param name="ColumnName">需要修改值的字段名</param>
/// <param name="Sql">被执行以获得需修改的记录的sql查询</param>
/// <param name="NewValue">新值</param>
public static void SetColumnDataSingleRow(string ColumnName, string Sql, object NewValue)
{
try
{
DataTable dt = CDO.GetDataTable(Sql);
if (CError.HaveError()) return;
dt.Rows[0][ColumnName] = NewValue;
CDO.UpdateDataTable(Sql,dt);
}
catch (Exception e)
{
CError.ErrorMsg = e.Message;
return;
}
}
#endregion
#region public static void SetColumnDataByID(string ColumnName, string TableName, decimal ID, object NewValue) : 根据ID查出表中的一条记录。修改该记录在指定字段上的值
/// <summary>
/// 根据ID查出表中的一条记录。修改该记录在指定字段上的值。
/// </summary>
/// <param name="ColumnName">需要修改值的字段名</param>
/// <param name="TableName">表名</param>
/// <param name="ID">需要修改值的记录的ID</param>
/// <param name="NewValue">新值</param>
public static void SetColumnDataByID(string ColumnName, string TableName, decimal ID, object NewValue)
{
string Sql = String.Format("update {0} set {1}='{3}' where {0}ID='{2}'",TableName,ColumnName,ID,NewValue);
CDO.Execute(Sql);
}
#endregion
#region public static void ReverseBoolColumnDataByID(string ColumnName, string TableName, decimal ID) : 根据ID查出表中的一条记录。修改该记录的指定布尔类型字段的值,改成它的“非”
/// <summary>
/// 根据ID查出表中的一条记录。修改该记录的指定布尔类型字段的值,改成它的“非”。
/// </summary>
/// <param name="ColumnName">需要修改值的字段名,必须是布尔类型的</param>
/// <param name="TableName">表名</param>
/// <param name="ID">需要修改值的记录的ID</param>
public static void ReverseBoolColumnDataByID(string ColumnName, string TableName, decimal ID)
{
string Sql = String.Format("update {0} set {1}=1-{1} where {0}ID='{2}'",TableName,ColumnName,ID);
CDO.Execute(Sql);
}
#endregion
#region public static DataTable GetDataTableByID(string TableName, decimal ID) : 根据ID查出表中的一条记录,存入DataTable内
/// <summary>
/// 根据ID查出表中的一条记录,存入DataTable内。
/// </summary>
/// <param name="TableName">表名</param>
/// <param name="ID">需要取值的记录的ID</param>
/// <returns>保存取出的记录的DataTable</returns>
public static DataTable GetDataTableByID(string TableName, decimal ID)
{
string Sql = String.Format("select * from {0} where {0}ID='{1}'",TableName,ID);
return CDO.GetDataTable(Sql);
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -