MVC 数据库连接

1.创建数据库

2.创建表

<pre name="code" class="sql">CREATE TABLE [dbo].[Student](
	[ID] [INT] IDENTITY(1,1) NOT NULL,
	[Name] [NVARCHAR](30) NULL,
	[StudentNo] [NVARCHAR](20) NULL,
	[Age] [INT] NULL,
	[Sex] [NVARCHAR](2) NULL,
	[Description] [NVARCHAR](100) NULL,
	[classID] [INT] NULL
) ON [PRIMARY]


3.安装EntityFramework

点击“References”,鼠标右键选择:“Manage NuGet Packages...”。

在线搜索“EntityFramework”,下载安装



4.添加数据库连接字符串

双击“Web.config”

添加连接字符串:

<connectionStrings>
    <add name="DataConnection" connectionString="server=127.0.0.1;database=Test;uid=sa;pwd=123456" providerName="System.Data.SqlClient"/>
  </connectionStrings>


5.在Models目录下,添加实体上下文类StuInfoDBContext

注意添加EF应用

DataConnection为连接字符串的名称

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;

namespace Iweb.Areas.SiteInfo.Models
{
    public class StuInfoDBContext:DbContext
    {
        public StuInfoDBContext()
            : base("DataConnection")
        {
        }
    }
}


6.在Models目录下,添加实体模型类Student

注意和数据库中表名保持一致,否则EF会新创建一张实体模型类对应的表

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Iweb.Areas.SiteInfo.Models
{
    public class Student
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string StudentNo { get; set; }
        public int Age { get; set; }
        public string Sex { get; set; }
        public string Description { get; set; }
        public int classID { get; set; }
    }
}



7.这样程序就和数据库连接起来了,程序中的实体模型和数据库中的表一一对应

8.测试

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Data;
using Iweb.Areas.SiteInfo.Models;

namespace Iweb.Areas.SiteInfo.Controllers
{
    public class SiteInfoController : Controller
    {
        //
        // GET: /SiteInfo/SiteInfo/

        public ActionResult Index()
        {
            StuInfoDBContext stuContext = new StuInfoDBContext();
            string sql = @"INSERT INTO dbo.Student
            ( Name ,
            StudentNo ,
            Age ,
            Sex ,
            Description ,
            classID
            )
            VALUES  ( N'abc' , -- Name - nvarchar(30)
                    N'1010322119' , -- StudentNo - nvarchar(20)
                    24 , -- Age - int
                    N'男' , -- Sex - nvarchar(2)
                    N'健身,爬山' , -- Description - nvarchar(100)
                    2  -- classID - int
            )";
            stuContext.Database.ExecuteSqlCommand(sql);
            List<Student> stuLis= stuContext.Database.SqlQuery<Student>("SELECT * FROM dbo.Student").ToList();
            return View();
        }

    }
}



ASP.NET MVC进行数据库连接有多种方法,下面介绍一些常见的方式: ### 直接将表转换为类进行操作 初学者可以避开Entity Framework (EF)等解决方案,从问题着手解决数据库访问问题,把表变成类,对类生成的对象进行数据库增删查改操作。例如对于MySQL数据库,可实现简单的数据库访问实例 [^1]。 ### 使用NuGet控制台更新数据库连接设置 以连接MySQL数据库并使用Code First为例,完成相关工作后,可在NuGet的控制台更新数据库代码后的连接设置。通过软件包管理器控制台执行特定命令,以实现通过指定数据库名启用并添加新的迁移 [^2]。 ### 配置特定数据库 以使用Oracle数据库为例,在配置ASP.NET MVC 4应用程序连接时,会涉及相关代码逻辑,如 `if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))` 这样的验证登录逻辑可能会在连接和使用数据库过程中用到 [^3]。 以下是一个简单的ASP.NET MVC连接MySQL数据库并查询数据的示例代码(使用Dapper作为数据访问库): ```csharp using System.Collections.Generic; using System.Data.SqlClient; using Dapper; namespace YourNamespace { public class YourModel { public int Id { get; set; } public string Name { get; set; } } public class YourRepository { private string connectionString = "your_connection_string"; public IEnumerable<YourModel> GetAll() { using (var connection = new SqlConnection(connectionString)) { return connection.Query<YourModel>("SELECT * FROM YourTable"); } } } } ``` 在上述代码中,需要将 `your_connection_string` 替换为实际的MySQL数据库连接字符串, `YourTable` 替换为实际要查询的表名。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值