查询中的SQL查询 [英] SQL Query within view

查看:95
本文介绍了查询中的SQL查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在我的cshtml中的IMPORT_TRACKER表上显示查询结果。我有以下...

pre $ @model IEnumerable< BillingApp.Models.IMPORT_TRACKER>
@using System.Data.SqlClient;
@ {
ViewBag.Title =导入选择;
$ b $ string connString42 =Data Source = SWDB10DSQL; Initial Catalog = BillingUI; Integrated Security = True; MultipleActiveResultSets = True; Application Name = EntityFramework;
using(SqlConnection _theconny42 = new SqlConnection(connString42))
{
foreach(_theconny42.Query中的var行(SELECT MAX(IMPORT_DATE)FROM IMPORT_TRACKER;))
{
@ row.IMPORT_DATE;
}
}
}

我不确定语法来执行查询。它目前出现错误'System.Data.SqlClient.SqlConnection'没有包含'Query'的定义。



我已经将查询添加到ImportController。 cs

  public ActionResult ImportSelection()
{
{
var result =SELECT MAX (IMPORT_DATE)FROM IMPORT_TRACKER;;
return View(result);
}
}

而在ImportSelection.cshtml

  @foreach(模型中的var项)
{
< div> @ item< / div>
}

出现错误传入字典的模型项目类型'System.Data.SqlClient.SqlCommand',但是这个字典需要一个类型为'System.Collections.Generic.IEnumerable`1 [BillingApp.Models.IMPORT_TRACKER]'的模型项'。

  @model IEnumerable< BillingApp.Models.IMPORT_TRACKER> 

@ {
ViewBag.Title =导入选择;


我不确定分配给结果 p>

  public ActionResult ImportSelection()
{
{
string connString42 =Data Source = SWDB10DSQL; Initial Catalog = BillingUI; Integrated Security = True; MultipleActiveResultSets = True; Application Name = EntityFramework;
using(SqlConnection _theconny42 = new SqlConnection(connString42))
{
_theconny42.Open();
string lastimport =SELECT MAX(IMPORT_DATE)FROM IMPORT_TRACKER;;
SqlCommand Commander42 =新的SqlCommand(lastimport,_theconny42);
var result = Commander42.ExecuteNonQuery();
return View(result);
}
}
}

我是否接近... ?

p $ p $ public ActionResult ImportSelection()
{
{
var result = db.IMPORT_TRACKER (SELECT MAX(IMPORT_DATE)FROM IMPORT_TRACKER;);
return View(result);


我试过这个...











$ Data $ SWDB10DSQL初始目录= BillingUI;集成安全性= True; MultipleActiveResultSets = True;应用程序名称= EntityFramework;
string query =SELECT MAX(IMPORT_DATE)FROM IMPORT_TRACKER;;
var result = db.IMPORT_TRACKER(query);
return View(result);






错误3'字符串'不包含定义对于'IMPORT_TRACKER',并且没有扩展方法'IMPORT_TRACKER'接受'string'类型的第一个参数可以被找到(你是否缺少using指令或程序集引用?

解决方案

像这样做是非常糟糕的做法,View仅用于显示信息,如果要查询数据库,请在控制器中执行并将结果传递给视图

  public class HomeController:Controller 
{
public ActionResult Index()
{
var result = //在这里做你的查询
return View(result);
}
}

该视图可能如下所示:

  @model IEnumerable< string> ; 

@foreach(模型中的var项)
{
< div> @ item< / div>
}


I'm trying to display the results of a query on the IMPORT_TRACKER table in my cshtml. I have the following...

@model IEnumerable<BillingApp.Models.IMPORT_TRACKER>
@using System.Data.SqlClient;
@{
ViewBag.Title = "Import Selection";

string connString42 = "Data Source=SWDB10DSQL;Initial Catalog=BillingUI;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework";
using (SqlConnection _theconny42 = new SqlConnection(connString42))
{
    foreach (var row in _theconny42.Query("SELECT MAX(IMPORT_DATE) FROM IMPORT_TRACKER;"))
    {
@row.IMPORT_DATE;
    }
    }
}

I'm unsure on the syntax to perform the query. It currently gives an error " 'System.Data.SqlClient.SqlConnection' does not contain a definition for 'Query' "

I've added the query to the ImportController.cs

public ActionResult ImportSelection()
    {
        {
        var result = "SELECT MAX(IMPORT_DATE) FROM IMPORT_TRACKER;"; 
        return View(result);
        }
    }

And in ImportSelection.cshtml

       @foreach (var item in Model)
       {
           <div>@item</div>
       }

I'm getting an error "The model item passed into the dictionary is of type 'System.Data.SqlClient.SqlCommand', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[BillingApp.Models.IMPORT_TRACKER]'."

@model IEnumerable<BillingApp.Models.IMPORT_TRACKER>

@{
ViewBag.Title = "Import Selection";

}

I'm not sure what to assign to result

   public ActionResult ImportSelection()
    {
        {
            string connString42 = "Data Source=SWDB10DSQL;Initial Catalog=BillingUI;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework";
            using (SqlConnection _theconny42 = new SqlConnection(connString42))
            {
                _theconny42.Open();
                string lastimport = "SELECT MAX(IMPORT_DATE) FROM IMPORT_TRACKER;";
                SqlCommand Commander42 = new SqlCommand(lastimport, _theconny42);
                var result = Commander42.ExecuteNonQuery();
                return View(result);
            }
        }
    }

Am I closer...?

   public ActionResult ImportSelection()
    {
        {
                var result = db.IMPORT_TRACKER("SELECT MAX(IMPORT_DATE) FROM IMPORT_TRACKER;");
                return View(result);
        }
    }

I tried this...

  public ActionResult ImportSelection()
    {
        {
                string db = "Data Source=SWDB10DSQL;Initial Catalog=BillingUI;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework";
                string query = "SELECT MAX(IMPORT_DATE) FROM IMPORT_TRACKER;";
                var result = db.IMPORT_TRACKER(query);
                return View(result);
        }
    }

"Error 3 'string' does not contain a definition for 'IMPORT_TRACKER' and no extension method 'IMPORT_TRACKER' accepting a first argument of type 'string' could be found (are you missing a using directive or an assembly reference?"

解决方案

It is very bad practise to do it like this. A View is only for displaying information. If you want to query the database, do it in the controller and pass the result to the view as model.

public class HomeController : Controller
{
    public ActionResult Index()
    {
        var result = // do your query here
        return View(result);
    }
}

The view could look like the following:

@model IEnumerable<string>

@foreach (var item in Model)
{
    <div>@item</div>
}

这篇关于查询中的SQL查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆