0

我是 Umbraco 的新手。我正在尝试使用 dot net 用户控件在 umbraco 中开发自定义注册页面。为此,我在 umbraco 数据库中创建了一个名为“registerTable”的自定义表。我只想使用 Usercontrol 将数据插入到该表中。. 连接字符串“CM_Connection”位于 Webconfig 文件中。

这是代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;

namespace thesis
{
       public partial class test : System.Web.UI.UserControl
       {
          protected void Page_Load(object sender, EventArgs e)
          {
          }

        protected void Button1_Click(object sender, EventArgs e)
        {
                using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["CM_Connection"].ConnectionString))
                {
                    SqlCommand cmd = new SqlCommand();
                    Guid guid;
                    guid = Guid.NewGuid();
                    string sql = "INSERT INTO registerTable (Firstname) VALUES (@Name)";
                    cmd.Parameters.AddWithValue("@Name", TextBox1.Text.Trim() );
                    cmd.Connection = con;
                    cmd.CommandText = sql;
                    con.Open();
                    try
                    {
                        cmd.ExecuteNonQuery();
                        Label1.Text = "Registered successfully.";
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(ex.Message);
                    }
                }
        }
    }
}
4

1 回答 1

2

这将使您继续前进 - 此代码是 Umbraco 术语中的宏。IT 只是获取当前的数据库大小——但您当然可以随意更改查询。

@using Umbraco.Core
    <div>
    @{
        var context = ApplicationContext.Current;

        var databaseContext = context.DatabaseContext;

        databaseContext.Database.OpenSharedConnection();

        var db = ApplicationContext.Current.DatabaseContext.Database;

        var sql = "SELECT (SUM(reserved_page_count) * 8192)  FROM sys.dm_db_partition_stats";
        var result = db.ExecuteScalar<int>(sql);        
}

@if (databaseContext.Database.Connection.State == System.Data.ConnectionState.Open)
    {
    <span> Database is Open </span>
    <span> Size: @result</span>
    }
else
    {
    <span> Database is Closed</span>
    }

基本上你所做的就是

  1. 获取应用程序上下文
  2. 获取数据库上下文
  3. 打开数据库
  4. 执行您的查询
  5. 显示结果

为此,您需要使用 Umbraco.Core。

于 2014-06-26T15:48:11.170 回答