北京最有效白癜风的治疗方法 https://jbk.39.net/yiyuanzaixian/bjzkbdfyy/nvxbdf/前言在《C#SqlSugar框架的学习使用(一)--SqlSugar简介及创建》中,我们初步认识了SqlSugar,并创建了一个名为SqlSugarTest的Demo。接下来,我们将依托这个Demo,深入探讨数据库操作。
环境概览我们使用的数据库版本为SQLSERVERR2,编译器则是VisualStudio。为了本次演示,我们在本地的SQLSERVER中创建了一个名为SumCharge的数据库,并已预先建立了一些表格,其结构如下:
代码演示接下来,我们在之前创建的SqlSugarTest项目中,为窗体文件添加6个按钮和一个文本框控件。封装文本框操作
gion文本框操作
//定义文本框变量privatestaticTextBox_tbMsg;
//定义Action委托,用于处理文本框中的数据privateActionTextShowAction=newActionTextShow;
//定义更新UI的函数,当文本框中的行数超过时,自动清空文本框privatestaticvoidTextShow(stringsMsg){if(_tbMsg.Lines.Length){//清空文本框内容_tbMsg.Text="";}else{//在文本框中追加显示数据_tbMsg.AppendText(sMsg+"\r\n");}}
endgion
在上述代码中,我们首先定义了一个静态的TextBox变量_tbMsg,用于代表文本框控件。接着,我们创建了一个Action委托TextShowAction,并将其指向一个名为TextShow的方法。这个方法负责处理文本框中的数据,当文本框中的行数超过时,会自动清空文本框的内容;否则,会在文本框中追加显示新的数据。这样,我们就成功地对文本框的操作进行了封装。当文本框中的行数超过时,我们使用_tbMsg.Clear()方法清空了文本框的内容。接下来,我们构造了一个字符串ShowMsg,其中包含了当前时间、一个固定的前缀以及要显示的消息,并使用\r\n进行换行。然后,我们通过调用_tbMsg.AppendText(ShowMsg)将这个字符串追加到文本框中。为了确保用户能够看到新追加的数据,我们通过_tbMsg.Focus()使文本框获取焦点,并通过_tbMsg.Select(_tbMsg.TextLength,0)将光标的位置设置到文本的末尾。这样,用户就可以立即看到新追加的数据了。//滚动到控件光标处_tbMsg.ScrollToCat()
endgion
gion数据库连接
ltsummarygt数据库连接实例lt/summarygtprivateSqlSugarClient_db;
//数据库连接字符串privatestring_connstr="server=.uid=sapwd=sumsoftdatabase=SumCharge";
ltsummarygt连接数据库方法lt/summaryltparamname="connstr"gt连接字符串lt/paramgtprivatevoidConnectDb(stringconnstr){_db=newSqlSugarClient(newConnectionConfig(){ConnectionString=connstr,DbType=SqlSugar.DbType.SqlServer,//设置数据库类型为SqlServerIsAutoCloseConnection=true,//自动释放数据连接,如果存在事务,在事务结束后释放InitKeyType=InitKeyType.Attribute//从实体特性中读取主键自增列信息});
//启用Sql打印,便于调试_db.Aop.OnLogExecuting=(sql,pars)={TextShowsql(sql);};
}
//用于显示Sql语句的方法,可根据实际需求进行实现privatevoidTextShowsql(stringsql){//在此处可添加代码以显示或处理Sql语句,例如打印到控制台或日志文件中。}
endgion在尝试各功能之前,我们首先需要确保数据库已成功连接。连接数据库是使用数据库的首要步骤,只有在连接成功后,才能执行其他操作。上述代码段展示了连接数据库的核心逻辑,您只需在适当的位置触发相应的按钮事件,即可启动数据库连接过程。在成功连接数据库后,下一步是根据数据库表来生成实体类。这一步是数据建模的关键环节,通过将数据库表映射为实体类,我们可以更方便地操作数据库中的数据。通常,我们可以使用一些工具或框架来自动完成这一映射过程,以减少手动编写代码的工作量。根据数据库表生成实体类
在数据库连接成功后,我们需要根据数据库表来生成相应的实体类。这一步骤对于数据建模来说至关重要,它使得我们能够更高效地操作数据库中的数据。为了简化这一过程,我们可以利用各种工具或框架来自动完成从数据库表到实体类的映射。
在执行生成实体类的操作时,我们需要指定生成的路径和命名空间。生成的路径决定了实体类文件将被保存在哪里,而命名空间则用于组织这些类文件。通过这些参数的配置,我们可以精确地控制实体类的生成过程。
现在,让我们来尝试运行一下这个生成实体类的操作。首先,确保指定的文件夹是空的,以便我们能够清晰地看到生成的实体类文件。接着,我们打开程序,先进行数据库连接,然后点击生成类的按钮。等待片刻后,我们就可以在指定的文件夹下找到新生成的实体类文件了。查看生成结果
执行完生成实体类的操作后,我们再次查看当前文件夹,会发现数据库中的每个表都已成功生成了对应的实体类文件。这些文件不仅数量众多,而且命名规范,为我们的数据建模工作提供了极大的便利。接下来,我们将这些生成的实体类逐一添加到项目中,以确保能够顺利进行后续的增、删、改、查等数据库操作。接下来,我们以数据库中的OS表为例,进行增删改查的操作。该表共有四个字段,目前尚无数据记录。通过SqlSugar生成的POS类,我们可以轻松地执行增删改查操作。该类包含Posno、Posname、OrgCode和status四个字段,其中Posno和Posname字段为必填项,而OrgCode和status字段允许为空。在执行增加操作时,我们只需实例化一个POS对象,为其赋值后调用插入方法即可。运行效果在连接数据库并执行SqlSugar生成的POS类操作时,我们加入了输入Sql语句以便于调试。在第二张图中,红框部分展示了我们实际加入并执行的生成的SQL语句。接着,让我们进一步探索数据库中的表结构。接着,我们进一步探讨数据库中的表结构。为了获取表中的所有数据,我们可以使用查询语句Select。根据特定条件进行查询
在数据库中,我们不仅可以直接获取表中的所有数据,还可以根据特定的条件来查询我们需要的数据。这种根据条件进行查询的方式,在处理大量数据时显得尤为有用,因为它允许我们精确地定位到感兴趣的数据,从而提高数据处理的效率。执行结果
当我们根据特定条件在数据库中执行查询时,系统会返回符合这些条件的数据。这些数据以表格或文本的形式呈现,直观地展示了查询的结果,帮助我们快速了解数据库中的数据分布和详情。更新与修改
在数据库操作中,我们经常需要对数据进行更新与修改。通过特定的指令,我们可以轻松地更改数据库中的现有数据,以满足不断变化的需求。这种能力使得数据库系统变得灵活且可适应,能够应对各种复杂的业务场景。执行更新与修改操作后,若发现系统提示错误,应如何处理?上述提示指出未找到主键,这可能是因为在我们生成的类中缺乏相应的特性。经过查阅SqlSugar的文档,我们发现可以在类中自行定义主键特性。因此,我们在POS类中的Posno字段上方添加了特性,如图所示。在添加了主键特性并重新运行后,我们发现POS类中的Posno字段已经成功被识别为主键。然而,在上述过程中,我们发现即便未明确添加,如OrgCode和Status这样的属性也已被默认包含在修改范围内,并且数据库中原有的值被不恰当地更改为NULL。因此,我们建议在进行修改时,应首先查询出相应的属性,然后再进行统一的修改,以避免出现未赋值属性被直接更改为NULL的情况。
此外,在删除操作中,我使用了lambda表达式来删除Posno为的记录。实际上,除了这种删除方式,还存在其他多种删除方法。运行效果展示
在执行上述操作后,我们观察到了预期的运行效果。通过查询和修改属性的统一操作,成功避免了未赋值属性被不恰当地更改为NULL的情况。同时,我们也尝试了不同的删除方法,包括使用lambda表达式删除特定记录,以及其他多种删除方式,均取得了满意的结果。数据库查询无数据
经过进一步查询,发现数据库中确实没有相关数据。数据库查询无数据
经过深入查询,我们发现数据库中并未收录任何相关数据。