Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC 4从现有数据库中搜索_C#_Asp.net_Asp.net Mvc 4_Entity Framework 4_Ef Code First - Fatal编程技术网

C# ASP.NET MVC 4从现有数据库中搜索

C# ASP.NET MVC 4从现有数据库中搜索,c#,asp.net,asp.net-mvc-4,entity-framework-4,ef-code-first,C#,Asp.net,Asp.net Mvc 4,Entity Framework 4,Ef Code First,我想知道是否有人可以帮助我在现有数据库上创建datacontext并从中进行搜索 到目前为止我所做的: 为web.config上的现有数据库创建了connectionstring(与我新创建的DataContext类同名) 创建了DataContext类和它的模型类,其中是我想要获取的字段 为它创建了一个调用搜索的控制器 为控制器创建视图 这是我使用的代码 DataContext类 using System; using System.Collections.Generic; using Sys

我想知道是否有人可以帮助我在现有数据库上创建datacontext并从中进行搜索

到目前为止我所做的:

  • 为web.config上的现有数据库创建了connectionstring(与我新创建的DataContext类同名)
  • 创建了DataContext类和它的模型类,其中是我想要获取的字段
  • 为它创建了一个调用搜索的控制器
  • 为控制器创建视图
  • 这是我使用的代码

    DataContext类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Data.Entity;
    
    namespace KendoUIMvcCim.Models
    {
        public class CustDataContext : DbContext
        {
            public DbSet<Contacts> CLIENT { get; set; }
    
        }
    }
    
    控制器

    public ActionResult Testi(int? clientid)
            {
                using (var db = new CustDataContext()) 
             {
               var contact = db.CLIENT.Find(clientid);
    
                 if (contact != null)
                 {
                     return View(contact);
                 }
                 else
                 {
                     return RedirectToAction("Index", "Customer");
                 }
    
             }
    
    任何帮助都将不胜感激

    致以最良好的祝愿, Eero使用Linq如下:

        public ActionResult Index(string searchTerm = null)
        {
    
            var model =
                _db.Clients
                .Where(r => searchTerm == null || r.FirstName.StartsWith(searchTerm) || r.LastName.StartsWith(searchTerm))
                    .Take(10)
                    .Select r;
    
            return View(model);
        }
    
    @model IEnumerable<AppName.Models.ModelName>
    
    @{
       ViewBag.Title = "Home Page";
    }
    
    <form method="GET">
        <input type="search" name="searchTerm" />
        <input type="submit" value="Search for a name"/>
    </form>
    @try
    {
        foreach (var item in Model)
        {
            <h3>@Html.DisplayFor(modelItem => item.FirstName)</h3>
            <p>@Html.DisplayFor(modelItem => item.LastName)</p>
    
        }
    }
    catch (NullReferenceException nullex)
    {
        <p>@nullex</p>
    }
    
    索引视图可以如下所示:

        public ActionResult Index(string searchTerm = null)
        {
    
            var model =
                _db.Clients
                .Where(r => searchTerm == null || r.FirstName.StartsWith(searchTerm) || r.LastName.StartsWith(searchTerm))
                    .Take(10)
                    .Select r;
    
            return View(model);
        }
    
    @model IEnumerable<AppName.Models.ModelName>
    
    @{
       ViewBag.Title = "Home Page";
    }
    
    <form method="GET">
        <input type="search" name="searchTerm" />
        <input type="submit" value="Search for a name"/>
    </form>
    @try
    {
        foreach (var item in Model)
        {
            <h3>@Html.DisplayFor(modelItem => item.FirstName)</h3>
            <p>@Html.DisplayFor(modelItem => item.LastName)</p>
    
        }
    }
    catch (NullReferenceException nullex)
    {
        <p>@nullex</p>
    }
    
    @model IEnumerable
    @{
    ViewBag.Title=“主页”;
    }
    @试一试
    {
    foreach(模型中的var项目)
    {
    @DisplayFor(modelItem=>item.FirstName)
    @DisplayFor(modelItem=>item.LastName)

    } } 捕获(NullReferenceException nullex) { @纳莱克斯

    }
    像这样使用Linq:

        public ActionResult Index(string searchTerm = null)
        {
    
            var model =
                _db.Clients
                .Where(r => searchTerm == null || r.FirstName.StartsWith(searchTerm) || r.LastName.StartsWith(searchTerm))
                    .Take(10)
                    .Select r;
    
            return View(model);
        }
    
    @model IEnumerable<AppName.Models.ModelName>
    
    @{
       ViewBag.Title = "Home Page";
    }
    
    <form method="GET">
        <input type="search" name="searchTerm" />
        <input type="submit" value="Search for a name"/>
    </form>
    @try
    {
        foreach (var item in Model)
        {
            <h3>@Html.DisplayFor(modelItem => item.FirstName)</h3>
            <p>@Html.DisplayFor(modelItem => item.LastName)</p>
    
        }
    }
    catch (NullReferenceException nullex)
    {
        <p>@nullex</p>
    }
    
    索引视图可以如下所示:

        public ActionResult Index(string searchTerm = null)
        {
    
            var model =
                _db.Clients
                .Where(r => searchTerm == null || r.FirstName.StartsWith(searchTerm) || r.LastName.StartsWith(searchTerm))
                    .Take(10)
                    .Select r;
    
            return View(model);
        }
    
    @model IEnumerable<AppName.Models.ModelName>
    
    @{
       ViewBag.Title = "Home Page";
    }
    
    <form method="GET">
        <input type="search" name="searchTerm" />
        <input type="submit" value="Search for a name"/>
    </form>
    @try
    {
        foreach (var item in Model)
        {
            <h3>@Html.DisplayFor(modelItem => item.FirstName)</h3>
            <p>@Html.DisplayFor(modelItem => item.LastName)</p>
    
        }
    }
    catch (NullReferenceException nullex)
    {
        <p>@nullex</p>
    }
    
    @model IEnumerable
    @{
    ViewBag.Title=“主页”;
    }
    @试一试
    {
    foreach(模型中的var项目)
    {
    @DisplayFor(modelItem=>item.FirstName)
    @DisplayFor(modelItem=>item.LastName)

    } } 捕获(NullReferenceException nullex) { @纳莱克斯

    }
    在类型列表中搜索任何属性的通用方法

    public static IEnumerable<T> SearchColumns<T>(this IEnumerable<T> obj, string searchkey)
            {
                var properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.GetProperty | BindingFlags.Instance);
                if (properties == null)
                    throw new ArgumentException("{typeof(T).Name}' does not implement a public get property named '{key}.");
                var filteredObj = obj.Where(d => properties.Any(p => p.GetValue(d).ToString().Contains(searchkey))).ToList();
                return filteredObj;
            }
    
    公共静态IEnumerable SearchColumns(此IEnumerable对象,字符串searchkey)
    {
    var properties=typeof(T).GetProperties(BindingFlags.Public | BindingFlags.GetProperty | BindingFlags.Instance);
    如果(属性==null)
    抛出新ArgumentException(“{typeof(T).Name}”未实现名为“{key}”的公共get属性);
    var filteredObj=obj.Where(d=>properties.Any(p=>p.GetValue(d).ToString().Contains(searchkey)).ToList();
    回流过滤器;
    }
    
    在类型列表中搜索任何属性的通用方法

    public static IEnumerable<T> SearchColumns<T>(this IEnumerable<T> obj, string searchkey)
            {
                var properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.GetProperty | BindingFlags.Instance);
                if (properties == null)
                    throw new ArgumentException("{typeof(T).Name}' does not implement a public get property named '{key}.");
                var filteredObj = obj.Where(d => properties.Any(p => p.GetValue(d).ToString().Contains(searchkey))).ToList();
                return filteredObj;
            }
    
    公共静态IEnumerable SearchColumns(此IEnumerable对象,字符串searchkey)
    {
    var properties=typeof(T).GetProperties(BindingFlags.Public | BindingFlags.GetProperty | BindingFlags.Instance);
    如果(属性==null)
    抛出新ArgumentException(“{typeof(T).Name}”未实现名为“{key}”的公共get属性);
    var filteredObj=obj.Where(d=>properties.Any(p=>p.GetValue(d).ToString().Contains(searchkey)).ToList();
    回流过滤器;
    }
    
    看一看链接的MVC3教程。它帮助我找到了正确的方法,但无法手动创建DBContext。但是在使用ADO.NET实体数据模型之后,它就可以正常工作了。我本来不想这样做,因为我只想从一个大表中得到几列,但我想现在必须这样做。谢谢看一看链接的MVC3教程。它帮助我找到了正确的方法,但无法手动创建DBContext。但是在使用ADO.NET实体数据模型之后,它就可以正常工作了。我本来不想这样做,因为我只想从一个大表中得到几列,但我想现在必须这样做。谢谢谢谢你的回复,很抱歉回复晚了!谢谢你的回复,很抱歉回复晚了!