C#开发——数据库操作

数据库操作

数据库操作

1、SQLServer验证string connStr = "server=自己的Server名称;database=库名;uid=数据库账号;pwd=数据库密码; 和数据库连接SqlConnection conn = new SqlConnection(connectStr);
2、编写SQL语句string sql = ""
3、创建Command对象SqlCommand command = new SqlCommand(sql, connect);
4、打开链接conn.Open();
5、执行return commandSql(sql).ExecuteReader();
6、关闭链接conn.Close();

对返回“结果”的操作可以分为两类:一是用SqlDataReader直接一行一行的读取数据集;二是DataSet联合SqlDataAdapter来操作数据库。

SqlDataReader时刻与远程数据库服务器保持连接,将远程的数据通过“流”的形式单向传输给客户端,它是“只读”的。由于是直接访问数据库,所以效率较高,但使用起来不方便。
DataSet一次性从数据源获取数据到本地,并在本地建立一个微型数据库(包含表、行、列、规则、表之间的关系等),期间可以断开与服务器的连接,使用SqlDataAdapter对象操作“本地微型数据库”,结束后通过SqlDataAdapter一次性更新到远程数据库服务器。这种方式使用起来更方,便简单。但性能较第一种稍微差一点。

代码

/// <summary>
/// 连接数据库
/// </summary>
/// <returns></returns>
public static SqlConnection connectSql()
{
    //string connStr = "server=自己的Server名称;database=库名;uid=数据库账号;pwd=数据库密码;";
    string connStr = AnnotationSettingDao.GetDataConnect();//获取数据库信息

    SqlConnection sc = new SqlConnection(connStr);
    conn.Open();
    return conn;

    
}

/// <summary>
/// 关闭数据库连接
/// </summary>
public static void closeSql(SqlConnection conn)
{
    conn.Close();// 关闭数据库连接
    conn.Dispose();// 释放数据库连接对象
}
SqlConnection conn=null;
try
{
    conn = BaseDao.connectSql(conn);
    Dao.;//数据库操作
}
catch (Exception ex)
{
    throw ex;
}
finally
{
    BaseDao.closeSql(conn);
}
return;

C#数据库操作基础类 SqlHelper的代码


class SQLHelper
{
    public static string conStr = "";
  
    public static SqlDataReader ExcuteReader(string sql, params SqlParameter[] pms)
    {       
        //这里不能用using,不然在返回SqlDataReader时候会报错,因为返回时候已经在using中关闭了。
        //事实上,在使用数据库相关类中,SqlConnection是必须关闭的,但是其他可以选择关闭,因为CG回自动回收
        SqlConnection conn = new SqlConnection(conStr);
        using (SqlCommand cmd = new SqlCommand(sql, conn))
        {
            if (pms != null)
            {
                cmd.Parameters.AddRange(pms);
            }
            try
            {
                conn.Open();
                //传入System.Data.CommandBehavior.CloseConnection枚举是为了让在外面使用完毕SqlDataReader后,只要关闭了SqlDataReader就会关闭对应的SqlConnection
                return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
            }
            catch
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
    }

    public static int ExecuteNonQuery(string sql, params SqlParameter[] pms)
    {
        using (SqlConnection conn = new SqlConnection(conStr))
        {
            using (SqlCommand cmd = new SqlCommand(sql, conn))
            {
                if (pms != null)
                {
                    cmd.Parameters.AddRange(pms);
                }
                try
                {
                    conn.Open();
                    return cmd.ExecuteNonQuery();
                }

                catch
                {
                    throw;
                }
                finally
                {
                    conn.Close();
                    conn.Dispose();
                }
            }
        }
    }
}

posted @   Patrick-Rex  阅读(24)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
点击右上角即可分享
微信分享提示