1.創建Oracle數據庫
开始-程序-Oracle-配置和移置工具-Database Configuration Assistant...(根据需要进行配置直到完成创建)
如遇到“...要求在当前oracle主目录中配置监听程序”問題,在打开windows任务管理器——服务——找到OracleListener(OracleOraDb11g_home1TNSListener)右击点击重新启动,要是没有该服务,则以管理员身份运行cmd,然后输入“lsnrctl start”开启;
更多创建数据库的问题:http://sz.togogo.net/news/3339.html
2.PL/SQL连接oracle数据库(这一步仅仅是为了测试数据库是否能正常连接)
开始-程序-Oracle-配置和移置工具-網絡組態輔助工具
本地Net服务名配置——添加(服务名一般是刚刚创建的全局数据库名)——主机名(localhost)——测试登录:登录用户(sys,system,dbsnmp,sysman),口令(刚刚创建数据库的口令)
账号被锁(lock):https://www.cnblogs.com/qilin20/p/12400773.html
3.创建winform程序,添加引用
NuGet程序包:SqlSugar,Newtonsoft.Json,Oracle.ManagedDataAccess
4.Sqlhelp类
public SqlSugarClient db;
public Sqlhelp()
{
//ManagedDataAccess.dll 未安装或者版本冲突, 按下面步骤操作即可 1、从Nuget卸载所有项目的ManagedDataAccess.dll和SqlSugar,用Nuget重新安装即可,如果还报错在最上层 WBE层 用NUGET安装
db = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = "Data Source=localhost:1521/test;User ID=lmttlw;Password=lmttlw",//也可用127.0.0.1替换localhost
DbType = DbType.Oracle,//设置数据库类型
IsAutoCloseConnection = true,//自动释放数据务,如果存在事务,在事务结束后释放
InitKeyType = InitKeyType.Attribute //从实体特性中读取主键自增列信息
});
}
5.增刪改查
#region 查询
/// <summary>
/// 查询所有
/// </summary>
/// <returns></returns>
public List<STUDENT> QueryAll()
{
var list = db.Queryable<STUDENT>().OrderBy(t => t.ID).ToList();
return (List<STUDENT>)list;
}
/// <summary>
/// 根据主键查询
/// </summary>
/// <param name="pkvalue"></param>
/// <returns></returns>
public STUDENT QueryFromPkvalue(decimal pkvalue)
{
var student = db.Queryable<STUDENT>().InSingle(pkvalue);
return student;
}
/// <summary>
/// 根据条件查询
/// </summary>
/// <param name="Model"></param>
/// <returns></returns>
public List<STUDENT> QueryInSingle(STUDENT Model)
{
var getByWhere = db.Queryable<STUDENT>().Where(
o => o.ID == Model.ID &&
o.NAME == Model.NAME &&
o.SEX == Model.SEX &&
o.AGE == Model.AGE
).ToList();
return getByWhere;
}
/// <summary>
/// 分页查询
/// </summary>
/// <returns></returns>
public List<STUDENT> QueryToPageList(STUDENT Model, ref int total)
{
var getPage = db.Queryable<STUDENT>().Where(o => o.ID == Model.ID).ToPageList(1, 2, ref total);
return getPage;
}
#endregion
#region 新增
/// <summary>
/// 新增
/// </summary>
/// <param name="studentModel"></param>
/// <returns></returns>
public bool Insert(STUDENT studentModel)
{
/*插入*/
//连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,实在找不到原因请先Google错误信息:'server' 是无效的连接字符串属性.
return db.Insertable(studentModel).ExecuteCommand() > 0;
//更多插入用法 http://www.codeisbug.com/Doc/8/1130
}
#endregion
#region 删除
/// <summary>
/// 删除
/// </summary>
/// <param name="pkvalue">主键</param>
/// <returns></returns>
public bool Delete(decimal pkvalue)
{
return db.Deleteable<STUDENT>(pkvalue).ExecuteCommand() > 0;
}
#endregion
#region 修改
/// <summary>
/// 修改
/// </summary>
/// <param name="pkvalue">主键</param>
/// <param name="studentModel"></param>
/// <returns></returns>
public bool Update(STUDENT studentModel)
{
return db.Updateable(studentModel).ExecuteCommand() > 0;
}
#endregion
#region Model
/// <summary>
/// 生成Model
/// </summary>
/// <returns></returns>
public string CreateModel()
{
try
{
string path = FuncHelper.GetPath("Model");
//path:存放的路径,Common:命名空间
db.DbFirst.IsCreateDefaultValue().CreateClassFile(path, "Common");
return "生成Model成功";
}
catch (Exception ex)
{
return ex.Message;
}
}
#endregion
public static string GetPath(string FolderName)
{
string uploadPath = Environment.CurrentDirectory;
uploadPath = uploadPath.Substring(0, uploadPath.IndexOf("DemoSqlSugar_Form")) + "Common\\" + FolderName;//控制台程序和Windows應用程序
return uploadPath;
}
个人感觉挺方便的,那个生成Model直接把所有表都产生了Model实体类,非常的Nice~