【问题标题】:How Do I Use C# Code In HTML To Get ID Out Of A SQL Database?如何在 HTML 中使用 C# 代码从 SQL 数据库中获取 ID?
【发布时间】:2015-09-15 22:33:03
【问题描述】:

所以我正在尝试创建一个带有数据库的网站,目前只想通过在 HTML 代码中从数据库中打印一个数字来检查数据库连接。我的脚本很糟糕,所以请忽略它。

C# 代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
public class LogFiller
{
    public int userID;
    string connectionstring = "USER ID=x;" +
                                       "PASSWORD=x;server=x;" +
                                       "Trusted_Connection=yes;" +
                                       "database=x; " +
                                       "connection timeout=30";

    public LogFiller()
    {
        //
        // TODO: Add constructor logic here
        //
    }
    public int getUserID
    {
        get {

            using (var connection = new SqlConnection(connectionstring))
            {
                try
                {
                    connection.Open();

                    SqlCommand myCommand = new SqlCommand("SELECT ID FROM x WHERE Name = 'x'", connection);
                    SqlDataAdapter adapter = new SqlDataAdapter(myCommand);
                    DataTable dt = new DataTable();
                    adapter.Fill(dt);

                    return (int)dt.Rows[0][0];
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                }
            }

            return userID;
        }
    }
}

我想到的脚本(但不起作用)

@{ 
    LogFiller lf = new LogFiller();
    lf.getUserID;
}

为了澄清:我只想写 C# 代码在我页面上的任何位置返回的数字。

【问题讨论】:

  • 你可以使用 ViewBag 来返回它。
  • 我不明白。看起来您正在尝试在前端 (html) 中运行 C# 后端代码。您的应用程序的结构是什么?你能不能在后端运行 C# 代码并传递变量(在 MVC 模型中,或者 ViewData 或 ViewBad 等)。如果你想在 Razor 中运行代码,它需要的不仅仅是对后端方法的引用。

标签: c# html sql


【解决方案1】:

一旦您使用@{ } 打开一个 C# 块,为了从该块内的变量写入值,您需要使用另一个 @ 将其转义,如下所示:

@{
   LogFiller lf = new LogFiller();
   <p>User ID: @lf.getUserID</p>
}

此外,正如评论中的某人所说,您可能需要使用命名空间完全限定您的 LogFiller 类型。所以无论你的命名空间是.LogFiller

【讨论】:

  • 没问题,请参阅我的编辑以获取更多详细信息。不要忘记使用它来自的命名空间来限定 LogFiller 类型!我不知道它在哪个命名空间中,所以您需要自己填写该详细信息。
猜你喜欢
  • 2018-06-21
  • 2021-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-05
相关资源
最近更新 更多