Asp.net mvc asp mvc纯sql可能吗?
有没有一种在ASP MVC上使用简单sql查询而不使用LINQ的方法Asp.net mvc asp mvc纯sql可能吗?,asp.net-mvc,Asp.net Mvc,有没有一种在ASP MVC上使用简单sql查询而不使用LINQ的方法 欢迎任何链接:)当然,您可以随时下拉使用常规ol':-) 也常用于简化原始sql和存储过程的执行。当然,您可以随时下拉使用常规的ol':-) 还常用于简化原始sql和存储过程的执行。当然,您可以将普通ADO.NET对象嵌入控制器的操作方法或自定义业务逻辑库中。举个例子警告:仅限演示代码。请勿尝试在生产场景中使用。 public ActionResult Index() { using(SqlConnection con
欢迎任何链接:)当然,您可以随时下拉使用常规ol':-)
也常用于简化原始sql和存储过程的执行。当然,您可以随时下拉使用常规的ol':-)
还常用于简化原始sql和存储过程的执行。当然,您可以将普通ADO.NET对象嵌入控制器的操作方法或自定义业务逻辑库中。举个例子警告:仅限演示代码。请勿尝试在生产场景中使用。
public ActionResult Index()
{
using(SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["CNTax"].ConnectionString))
{
using(SqlCommand command = conn.CreateCommand())
{
command.CommandText = "select * from Names";
command.CommandType = CommandType.Text;
conn.Open();
var table = new DataTable();
table.load(command.ExecuteReader());
return View("Index", table);
}
}
}
一个简单的代码片段,用于从数据库中选择所有名称,并返回将模型设置为DataTable的索引视图。当然,您可以在控制器的操作方法或自定义业务逻辑库中嵌入普通ADO.NET对象。举个例子警告:仅限演示代码。请勿尝试在生产场景中使用。
public ActionResult Index()
{
using(SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["CNTax"].ConnectionString))
{
using(SqlCommand command = conn.CreateCommand())
{
command.CommandText = "select * from Names";
command.CommandType = CommandType.Text;
conn.Open();
var table = new DataTable();
table.load(command.ExecuteReader());
return View("Index", table);
}
}
}
一个简单的代码片段,用于从数据库中选择所有名称,并返回将模型设置为DataTable的索引视图。当然可以。这与ASP.NET应用程序中通常使用的方法相同,正如这里的其他答案所示 …然而,我更喜欢使用工具来生成我的数据访问层。现在的一些首选是,和,甚至
我个人会选择nHibernate或LLBLGen Pro,这取决于您是否希望数据访问层由“域驱动设计”(nHibernate)或“数据驱动设计”(LLBLGen Pro)驱动,您当然可以。这与ASP.NET应用程序中通常使用的方法相同,正如这里的其他答案所示 …然而,我更喜欢使用工具来生成我的数据访问层。现在的一些首选是,和,甚至
我个人会选择nHibernate或LLBLGen Pro,这取决于您是否希望数据访问层由“域驱动设计”(nHibernate)或“数据驱动设计”(LLBLGen Pro)驱动。基于@user102220的答案:
设置一个数据访问层(只是一个单独的类或一系列类),然后从控制器调用这些。根据需要应用ADO.NET 基于@user102220的答案:
设置一个数据访问层(只是一个单独的类或一系列类),然后从控制器调用这些。根据需要应用ADO.NET 如果您使用的是实体框架,则可以像下面这样使用SqlQuery:
using(var db = new DbContext())
{
var result = db.Database.SqlQuery<your object>("Your Query",params));
}
使用(var db=new DbContext())
{
var result=db.Database.SqlQuery(“您的查询”,params));
}
对象:预期的结果类型(对象或类类型)和
您的查询和参数:带有参数的sql命令您应该传递给查询或不传递给查询如果您使用的是实体框架,您可以像这样使用SqlQuery:
using(var db = new DbContext())
{
var result = db.Database.SqlQuery<your object>("Your Query",params));
}
使用(var db=new DbContext())
{
var result=db.Database.SqlQuery(“您的查询”,params));
}
对象:预期的结果类型(对象或类类型)和
您的查询和参数:带有参数的sql命令应传递给查询或不传递给查询,请尝试以下解决方案:
var results = DynamicCall.DynamicListFromSql(_entities, "select * from users", null).ToList();
public static IEnumerable<dynamic> DynamicListFromSql(this DbContext db, string Sql, Dictionary<string, object> Params)
{
using (var cmd = db.Database.Connection.CreateCommand())
{
cmd.CommandText = Sql;
if (cmd.Connection.State != ConnectionState.Open) { cmd.Connection.Open(); }
using (var dataReader = cmd.ExecuteReader())
{
while (dataReader.Read())
{
var row = new ExpandoObject() as IDictionary<string, object>;
for (var fieldCount = 0; fieldCount < dataReader.FieldCount; fieldCount++)
{
row.Add(dataReader.GetName(fieldCount), dataReader[fieldCount]);
}
yield return row;
}
}
}
}
var results=DynamicCall.DynamicListFromSql(_entities,“select*from users”,null).ToList();
公共静态IEnumerable DynamicListFromSql(此DbContext数据库、字符串Sql、字典参数)
{
使用(var cmd=db.Database.Connection.CreateCommand())
{
cmd.CommandText=Sql;
如果(cmd.Connection.State!=ConnectionState.Open){cmd.Connection.Open();}
使用(var dataReader=cmd.ExecuteReader())
{
while(dataReader.Read())
{
var row=作为IDictionary的新ExpandooObject();
对于(var fieldCount=0;fieldCount
尝试以下解决方案:
var results = DynamicCall.DynamicListFromSql(_entities, "select * from users", null).ToList();
public static IEnumerable<dynamic> DynamicListFromSql(this DbContext db, string Sql, Dictionary<string, object> Params)
{
using (var cmd = db.Database.Connection.CreateCommand())
{
cmd.CommandText = Sql;
if (cmd.Connection.State != ConnectionState.Open) { cmd.Connection.Open(); }
using (var dataReader = cmd.ExecuteReader())
{
while (dataReader.Read())
{
var row = new ExpandoObject() as IDictionary<string, object>;
for (var fieldCount = 0; fieldCount < dataReader.FieldCount; fieldCount++)
{
row.Add(dataReader.GetName(fieldCount), dataReader[fieldCount]);
}
yield return row;
}
}
}
}
var results=DynamicCall.DynamicListFromSql(_entities,“select*from users”,null).ToList();
公共静态IEnumerable DynamicListFromSql(此DbContext数据库、字符串Sql、字典参数)
{
使用(var cmd=db.Database.Connection.CreateCommand())
{
cmd.CommandText=Sql;
如果(cmd.Connection.State!=ConnectionState.Open){cmd.Connection.Open();}
使用(var dataReader=cmd.ExecuteReader())
{
while(dataReader.Read())
{
var row=作为IDictionary的新ExpandooObject();
对于(var fieldCount=0;fieldCount
不要这样做。让您的控制器保持轻松,并创建一个数据访问层。您肯定不想将此添加到控制器中…只是为了演示和简洁。不要演示错误的做法-人们会遵循它。@John-我添加了一个愉快的警告,应该可以避开所有潜在用户。不要这样做。保持控制器的亮度,并创建一个数据访问层。为了演示和简洁起见,您肯定不想将其添加到控制器中。不要演示不好的做法-人们会遵循它。@John-我添加了一个令人愉快的警告,应该可以避开所有潜在用户。您好,欢迎使用堆栈溢出。当回答一个已经有很多答案的问题时,请务必补充一些额外的见解,以了解为什么您提供的回答是实质性的,而不是简单地重复您的回答