【问题标题】:UMBRACO cshtml display data from microsoft SQL server tableUMBRACO cshtml 显示来自 Microsoft SQL Server 表的数据
【发布时间】:2013-03-06 02:23:10
【问题描述】:

我继承了一个 Umbraco 4.9 站点,需要显示一些来自 SQL 数据库的数据。 我使用 cshtml 文件创建了一个宏,但它在创建 sqldataconnection 时一直失败。

这里是代码。

@inherits umbraco.MacroEngines.DynamicNodeContext
@using umbraco.MacroEngines
@using System.Xml.Linq
@using System.Text
@using System.Data
@using System.Data.SqlClient

@{
SqlConnection sqlConn = new SqlConnection(ConnectionString);
string sql = string.Format("SELECT * FROM [mydb] ");

}

<div class="park-list">
<h2>Parking List</h2>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <th>Date</th>
    </tr>
    <tr>
        <th>Name</th>
    </tr>
</table>
</div>

谁能指出我正确的方向。 谢谢

【问题讨论】:

  • 您收到的错误信息是什么?
  • 当页面显示时,我得到了大部分页面。加载 MacroEngine 脚本时出错(文件:
  • 我假设上面的 ConnectionString 是来自 web.config 的真实连接字符串?
  • 是的,我已经用用户控件测试了连接字符串,它可以工作。
  • 我建议在查询字符串中添加 ?umbDebugShowTrace=true 以查看异常的详细信息。这将要求您将 Web.config 中的 umbracoDebugMode 应用设置设置为 true。

标签: c# content-management-system umbraco


【解决方案1】:

我建议创建一个帮助类或库并从 razor 脚本中调用它。您可以简单地将类添加到 App_Code 目录或在本地创建一个新项目并上传 dll。

也就是说,您可以使用像 PetaPoco 这样的轻量级工具:https://github.com/toptensoftware/PetaPoco/blob/master/PetaPoco/PetaPoco.cs。将该文件添加到您的 App_Code 中,然后这样的事情可能会起作用:

@{
   var myDb = new PetaPoco.Database(connectionstringfromwebconfig);
   var someResult = myDb.Fetch("SELECT * FROM MyTable WHERE SomeColumn=@0", "Some value");
} 

<ul>
@foreach(var row in someResult)
{
 <li>
 @row.SomeOtherColumn 
 </li>
}
</ul> 

我在这里找到了这段代码:http://our.umbraco.org/forum/developers/razor/31685-Razor-ans-SQL-commands,还有其他代码可以在线程底部提供帮助。

【讨论】:

  • 我玩过这个,它期待“一些价值”中的一些东西,但我不知道那是什么。你知道这可能是什么吗?
  • 该 SQL 只是示例 SQL。 “一些值”就是您想要过滤“SomeColumn”的任何内容。
  • 我能够让原始代码工作,防火墙问题阻止了从该服务器到 sql 服务器的访问。
猜你喜欢
  • 2016-03-27
  • 1970-01-01
  • 1970-01-01
  • 2016-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-04
相关资源
最近更新 更多