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();
}
}
}
}
}
本文来自博客园,作者:Patrick-Rex,转载请注明原文链接:https://www.cnblogs.com/patrickrex/p/18028771
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升