C#三层ATM-3.编写数据库访问类

1.在DAL项目里新建类文件,命名为DbHelperSQL,本类放数据库访问的常用方法。

2.为DAL项目添加System.Configuration引用。对着项目下的引用点右键--选添加引用。打开下图。。选择。

C#三层ATM-3.编写数据库访问类

3.添加 引入命名空间

using System.Configuration;

using System.Data;

using System.Data.SqlClient;

为类添加静态字段---连接字符串,从winf的配置文件app.config里取

public static string connectionString = ConfigurationManager.ConnectionStrings["sqlservercon"].ConnectionString;  

4.添加执行非查询语句,返回影响的行数的方法

/// <summary>

/// 执行SQL语句,返回影响的记录数

/// </summary>

/// <param name="SQLString">SQL语句</param>

/// <returns>影响的记录数</returns>

public static int ExecuteSql(string SQLString)

        {

using (SqlConnection connection = new SqlConnection(connectionString))

            {

using (SqlCommand cmd = new SqlCommand(SQLString, connection))

                {

try

                    {

                        connection.Open();

int rows = cmd.ExecuteNonQuery();

return rows;

                    }

catch (System.Data.SqlClient.SqlException e)

                    {

                        connection.Close();

throw e;

                    }

                }

            }

        }

5.添加执行一条计算查询结果语句,返回查询结果(object)。地方法

/// <summary>

/// 执行一条计算查询结果语句,返回查询结果(object)。

/// </summary>

/// <param name="SQLString">计算查询结果语句</param>

/// <returns>查询结果(object)</returns>

public static object GetSingle(string SQLString)

        {

using (SqlConnection connection = new SqlConnection(connectionString))

            {

using (SqlCommand cmd = new SqlCommand(SQLString, connection))

                {

try

                    {

                        connection.Open();

object obj = cmd.ExecuteScalar();

if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))

                        {

return null;

                        }

else

                        {

return obj;

                        }

                    }

catch (System.Data.SqlClient.SqlException e)

                    {

                        connection.Close();

throw e;

                    }

                }

            }

        }

6.添加执行查询 返回dataset地方法

/// <summary>

/// 执行查询语句,返回DataSet

/// </summary>

/// <param name="SQLString">查询语句</param>

/// <returns>DataSet</returns>

public static DataSet Query(string SQLString)

        {

using (SqlConnection connection = new SqlConnection(connectionString))

            {

DataSet ds = new DataSet();

try

                {

                    connection.Open();

SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);

                    command.Fill(ds, "ds");

                }

catch (System.Data.SqlClient.SqlException ex)

                {

throw new Exception(ex.Message);

                }

return ds;

            }

        }

7.执行 某个数据表的某个字段的最大值

public static int GetMaxID(string FieldName, string TableName)

        {

string strsql = "select max(" + FieldName + ")+1 from " + TableName;

object obj = GetSingle(strsql);

if (obj == null)

            {

return 1;

            }

else

            {

return int.Parse(obj.ToString());

            }

        }

8.执行 判断是否存在

public static bool Exists(string strSql)

        {

object obj = GetSingle(strSql);

int cmdresult;

if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))

            {

                cmdresult = 0;

            }

else

            {

                cmdresult = int.Parse(obj.ToString()); //也可能=0

            }

if (cmdresult == 0)

            {

return false;

            }

else

            {

return true;

            }

        }