首页 > 数据库 >c# linq-to-sql 连接sqlserver数据库

c# linq-to-sql 连接sqlserver数据库

时间:2024-02-01 16:46:28浏览次数:28  
标签:BookDBEntities c# sqlserver linq stu ent user str new

在已有项目下,点击新建项:

 输入服务器名称:详见sqlserver登录页,如下所示:其中服务器名称、登录名、密码一一对应。且登录名必须为sa

 接着选择连接的数据库名称-》点击测试连接,测试是否正常连接数据库。点击确认完成创建。

 完成增删改查操作代码示例:

/// <summary>
    /// c# linq 连接数据库
    /// </summary>
    public class Class1
    {
        //插入
        public void linkToDBForSelect()
        {
            BookDBEntities ent= new BookDBEntities();
            //foreach (var item in ent.t_user)
            //{
            //    //打印整张表
            //    Console.WriteLine("id: " + item.id + "    密码: " + item.psw);
            //}

            //条件查询 查询整张表女生的信息
            var temp = from s in ent.t_user
                       where s.sex == "女"
                       select s;
            foreach (var item in temp)
            {
                //打印女生的信息
                Console.WriteLine(item.name);
            }
        }

        //添加到数据库
        public void DBAdd()
        {
            BookDBEntities ent = new BookDBEntities();
            t_user stu = new t_user();
            stu.name = "李四";
            stu.sex = "男";
            stu.psw = "123456";
            stu.id = "1003";

            //写法一:
            ent.t_user.Add(stu);
            //告诉上下文把实体的变化保存到数据库里面去,返回受影响行数
            int i = ent.SaveChanges();        //三元表达式
            string str = i == 1 ? "添加成功" : "添加失败";
            Console.WriteLine(str);
        }

        //修改
        public void UpdateDB()
        {
            BookDBEntities ent = new BookDBEntities();
            t_user stu = new t_user();
            stu.id = "1003";
            stu.name = "露丝";
            stu.sex = "女";
           

            //将当前实例附加到上下文来处理
            ent.t_user.Attach(stu);

            //写法一:
            //这里修改了名字和性别,因为其他的属性字段是不可空的所以为了通过验证必须
            //赋值(赋上了任意的值,但是我们并没有保存这些更改)
            ent.Entry<t_user>(stu).Property("name").IsModified = true;
            ent.Entry<t_user>(stu).Property("sex").IsModified = true;

            //写法二:Lambda表达式
            //dbContext.Entry<Students>(stu).Property<string>(s => s.StudentName).IsModified = true;
            //dbContext.Entry<Students>(stu).Property<string>(s => s.StudentSex).IsModified = true;

            int i = ent.SaveChanges();
            string str = i == 1 ? "修改成功" : "修改失败";
            Console.WriteLine(str);
        }

        //删除操作
        public void DeleteDB()
        {
            //using (var context = new BookDBEntities())
            //{
            //    var userToDelete = context.t_user.First(u => u.id == "1003");
            //    if (userToDelete != null)
            //    {
            //        context.t_user.Remove(userToDelete);
            //        context.SaveChanges();
            //    }
            //}

            BookDBEntities ent = new BookDBEntities();
            t_user stu = new t_user();
            stu.id = "1003";

            ent.Entry<t_user>(stu).State =EntityState.Deleted;
            int i = ent.SaveChanges();
            string str = i == 1 ? "删除成功" : "删除失败";
            Console.WriteLine(str);
        }

        static void Main(string[] args)
        {
            Class1 c = new Class1();
            //c.linkToDBForSelect();
            //c.DBAdd();
            //c.UpdateDB();
            //c.DeleteDB();

        }

        }

 

标签:BookDBEntities,c#,sqlserver,linq,stu,ent,user,str,new
From: https://www.cnblogs.com/wangyuna7723/p/18001576

相关文章

  • ConcurrentHashMap是如何实现线程安全的
     但是又为何需要学习ConcurrentHashMap?用不就完事了?我认为学习其源码有两个好处:更灵活的运用ConcurrentHashMap欣赏并发编程大师DougLea的作品,源码中有很多值得我们学习的并发思想,要意识到,线程安全不仅仅只是加锁ConcurrentHashMap是怎么做到线程安全的?   get方法如何线......
  • excel学习记录
    《相关案例详见博客园文件》1.记录整理、数据计算、数据分析、数据展现2.保存->工具->常规选项->设置打开密码和修改权限密码,修改权限密码表示可以修改,但是修改后不能保存3.快速填充ctrl+e:对数据拆分、重组、合并 例如:A列有邮箱数据,想提取出邮箱数据中的人名,在B列输入A1中的......
  • 手把手教你如何创建并上传modelscope模型
    参考来源:https://modelscope.cn/docs/模型的创建与文件上传1.注册modelscope相关账号(略)2.创建对应的模型3.填写模型的相关资料4.创建审核通过了之后,下载对应的模型文件夹5.拷贝对应的上传脚本,可以根据上面的页面复制使用modelscope的SDK脚本6.需要获取用户特......
  • Let’s Encrypt申请证书
    前提安装好ngixn,并配置解析好你的域名,仅仅留下证书配置处不填写即可。安装certbotcertbot官方推荐的自动化脚本,用来申请免费SSL证书的。(certbot中文翻译是证书机器人的意思)#安装certbot以及certbotnginx插件yuminstallcertbotpython3-certbot-nginx-y生成......
  • python连接mysql8、sqlserver2012
    python连接mysql比较顺利,网上很多代码,连接sqlserver的例子少,且很多错误,尝试很多帖子,最后成功代码如下。#连接mysqlimportpymysqldefconn():try:connection=pymysql.connect(host='localhost',port=3306,user='root',password='123456',database='cl&#......
  • 安装MySQL出现由于找不到vcruntime140_1.dll,无法继续执行代码的提示
    问题描述:在安装MySQL服务的时候,执行安装命令提示如下的错误信息。解决方法:通过分析可以知道,是由于缺少了vcruntime140_1.dll动态链接库文件,这是windows缺少vc_redist.x64.exe程序导致的服务安装错误,与我们要安装的MySQL服务并没有关系。(如果您的安装过VS类型的工具,就不会提示该......
  • Hive连接报错:root is not allowed to impersonate root (state=08S01,code=0)
    问题描述使用hive/bin目录下的hive启动客户端,使用!connectjdbc:hive2://hadoop01:10000连接Hive数据仓库时提示输入用户名和密码,输入数据库的用户名和密码报错:Error:CouldnotopenclienttransportwithJDBCUri:jdbc:hive2://hadoop01:10000:Failedtoopennewsession......
  • 谭浩强 第5版 第8章 第2题(使用strcmp)
    题目:输入3个字符串,要求按由小到大的顺序输出。代码实现:#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intmain(){ chararr[3][20]={0}; char*p[3]={0}; inti=0; intj=0; char*tem=NULL; //输入 for(i=0;i<3;i++) { scanf("%s",......
  • Spring Data审计功能@CreatedDate、@CreatedBy、@LastModifiedDate、@LastModifiedBy
    在SpringJPA中,在实体bean的属性上加注解@CreatedDate、@CreatedBy、@LastModifiedDate、@LastModifiedBy,可以再实体插入数据库时进行设置值,这样以来,在对普通实体类的添加、修改操作时,就不用关心创建时间、更新时间这些信息了。本文以SpringBoot为例1、引入依赖<dependency><......
  • 从CF1737学习区间计数处理与开方精度丢失问题
    Problem-B-Codeforces思路出来之后,需要计算\(l,r\)区间的个数。我想的是计算出\([0,r]\)的个数和\([0,l]\)的个数,然后相减。大体上是没问题,但是我的实现麻烦而且有错误。初始代码voidsolve(){lll,r;cin>>l>>r;autocalc=[&](llx,bool......