0

私は Umbraco の初心者です。ドット ネット ユーザー コントロールを使用して、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 用語内の MACRO です。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 に答える