Visual Studio

本文详细介绍了在 Visual Studio 中使用 LINQ 进行单表和多表查询,包括 Single(), SingleOrDefault(), ToList(), Count() 等方法的用法,并展示了如何处理相对和绝对路径。此外,还讲解了控制语句,如 if-else, switch, for 循环等。最后,探讨了新增、修改和删除操作的步骤,强调了在模态窗体中的应用和数据验证的重要性。" 124519556,7606400,CentOS7系统中详细安装JDK教程,"['linux', 'java', 'jdk', 'CentOS', '服务器']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 查询
LINQ: 语言集成查询(英语:Language Integrated Query,缩写:LINQ),发音"link",是微软的一项技术,新增一种自然查询的SQL语法到.NET Framework的编程语言中,当前可支持C#以及Visual Basic .NET语言
(1) linq 单(多)表查询的写法
(from 自定义的表名 in Model对象.查询的表
where 自定义的表名.字段1 关系运算符 值
&& 自定义的表名.字段2 关系运算符 值
orderby 自定义的表名.字段
select 自定义的表名
select new : [属性名1= ]自定义的表名.字段1
[属性名2= ]自定义的表名.字段2
[属性名3= ]自定义的表名.字段3
select 类名: [类的属性1= ]自定义的表名.字段1
[类的属性2= ]自定义的表名.字段2
.Single();//查询单条数据,当没有数据或者有多条数据时会触发异常
.SingleOrDefault();//查询单条数据,当没有数据返回默认值(对象的默认值为null);当有多条数据时触发异常
.ToList();//查询多条数据并转为List
.Count();//查询有多少条数据
完整代码模板:
(1)查询单条数据,当没有数据或者有多条数据时会触发异常
string oldPicture = (from tabUser in myModel.S_User
where tabUser.userID == user.userID
select tabUser.picture).Single();
(2)查询多条数据并转为List,根据表和表之间相同的数据ID进行连表查询
List userModules = (from tabModule in myModel.S_Module
join tabP in myModel.S_Permission
on tabModule.moduleID equals tabP.moduleID
join tabUseType in myModel.S_UserType
on tabP.UserTypeID equals tabUseType.userTypeID
oin tabUser in myModel.S_User
n tabUseType.userTypeID equals tabUser.userTypeID
where tabUser.userID == intUserID
select new ModuleVo
{
moduleID = tabModule.moduleID,
moduleName = tabModule.moduleName,
moduleDescrible = tabModule.moduleDescrible,
moduleFarID = tabModule.moduleFarID,
blFun = tabModule.blFun,
parentModule = (from tabModuleF in myModel.S_Module
where tabModuleF.moduleID == tabModule.moduleFarID
select tabModuleF).FirstOrDefault()
}).ToList();
(3)查询有多少条数据/查询数据总条数
int intTotalRow = listUser.Count();
(4)查询出当前条件数据,查询单条数据
S_User dbUser = myModel.S_User.SingleOrDefault(o => o.userID == userID);
2 路径
(1)相对路径和绝对路径
关于路径的说明:
/ 根目录 (Web服务器 的根目录)
./ 当前目录。
…/ 父级目录。
~/ 根目录 (Application 的根目录)
@Url.Content("");
将虚拟(相对)路径转换为应用程序绝对路径

  1. 修改img元素的src 拼接参数t的作用是让每次请求的路径都不一样,避免浏览器缓存
    完整代码模板:
    $("#validCodeImage").prop(“src”,"@Url.Content("~/Main/CreateValidCode?t=")"+new Date().getTime());
    (二) 控制语句
    控制语句用于控制程序的流程,以实现程序的各种结构方式。包括:
    if () … else …(条件语句)
    switch (多分支选择语句)
    for()… (循环语句)
    do…while() (循环语句)
    while()… (循环语句)达到条件结束
    break 终止执行switch或循环语句)
    continue (结束本次循环语句
    goto(无条件转向语句)
    return (从函数返回语句)

3新增 和 修改
新增和修改都有个属于它们的模态窗体,在新增的模态框窗体是当你新增时的模态框的样式,在视图页面中写新增的代码先写新增按钮的点击事件要重置下表单新增一个url(相当于路径)新增modal窗体的标题打开modal 并禁用esc退出和点击背景时不关闭动态模态框保存新增获取表单(定义某个变量来获取里面的值)判断字符串不能为空否则就要提醒用户填写完整开启加载层关闭加载层刷新表格关闭模态框
首先我们在HTML代码中编写了两个模态框窗体的代码,一个新增,一个修改,它们两个操作时都是需要弹出模态窗体的

新增:先把模态窗体弹出,点击新增按钮->弹出模态窗体,我在视图定义一个弹出模态窗体的方法function,在button那里通过一个onclick事件去调用这个方法;给这个button按钮绑定一个点击click事件,

首先,去获取新增这个按钮,点击按钮,若是弹出模态窗体,表示绑定成功,没有,则表示绑定失败;下一步就是弹出模态窗体,通过onclick去获取在模态窗体;去调用一个 modal这个方法,(调用modal需要引用一个插件bootstrap.min .js);新增:先把模态窗体弹出,点击新增按钮->弹出模态窗体,我在视图定义一个弹出模态窗体的方法function,在button那里通过一个onclick事件去调用这个方法;给这个button按钮绑定一个点击click事件,

修改:大概操作与新增相似,点击修改按钮,弹出模态窗体时并且把数据查询出来,放到模态窗体里面,填写需要修改的数据,对修改的数据进行保存;(查询数据方法有两种:根据学院id去数据库里面查我要修改的这一条数据,查询好的数据放到模态窗体里面;还有一种方式,获取当前行的数据)。
在这里要注意一个问题,在模态窗体输入数据,然后关闭它,当你在再次打开模态窗体时,数据还在,它并被没有清空,而用户想要的操作是再一次打开模态窗体时,里面数据被清空,一个空的模态窗体,
有一个方法可以解决这个问题。

重置完表单后,点击保存按钮,进行条件判断,表单数据不能为空,进行保存的一个操作,给它定义一个function,这个方法里面主要是进行一个保存的操作,而我们要去模态窗体里面我们在保存的按钮上添加了一个onclick,通过onclick调用这个方法,获取需要新增的数据,把获取到的数据传给控制器;控制器通过一个方法再传给数据库里面进行新增,我通过post把获取的数据传送到控制器,在post里,第一个参数:URL,具体的位置,
第二个参数:你要传递的参数,以键值对 ;
第三个参数:回调函数;传递数据后,还有去判断传递数据是否完整,再给用户设置一些提示。

在控制器定义一个方法,去接收视图传过来的数据,在方法里面,去实例化数据,在对它进行赋值,赋值之后,就是新增,保存数据完成之后,要判断数据是否新增,数据是否为空/数据是否相同。

在控制器定义一个方法,去接收视图传过来的数据,在方法里面,去实例化数据,在对它进行赋值,赋值之后,就是修改,修改数据完成之后,要判断数据是否修改成功,数据是否为空/数据是否修改。
4删除
删除有个属于它的模态窗体,在删除的模态框窗体是当你删除时的模态框的样式,在视图页面中写删除的代码先写删除按钮的点击事件新增一个url(相当于路径)自定义列删除模板 开启加载层关闭加载层关闭模态框
首先我们在HTML代码中编写了一个模态框窗体的代码,一个删除,它一个操作时是需要弹出提示模态窗体的

查询需要删除的数据,把获取到的数据传给控制器;控制器通过一个方法再传给数据库里面进行删除,我通过方法把获取的数据传送到控制器,第一个参数:Url,具体的位置。第二个参数:你要传递的参数,以键值对。第三个参数:回调函数;传递数据后,还有去判断传递数据是否删除,再给用户设置一些提示。

在控制器定义一个方法,去接收视图传过来的数据,在方法里面,去实例化数据,在对它进行赋值,赋值之后,就是删除,删除数据完成之后,要判断数据是否删除成功,数据是否存在/无法删除/删除数据异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值