Web design and hosting, database, cloud and social media solutions that deliver business results
  • حلول الأعمال
    • خدمات قاعدة البيانات
      • أدوات
    • تصميم الموقع
      • جزيرة وايت
    • الخدمات السحابية
    • وسائل الاعلام الاجتماعية
  • الأكاديمية
    • تعلم قاعدة البيانات
      • استخدام SQL Server Pivot-Unpivot
      • استخدام وظائف خادم SQL
      • باستخدام SQL Server التواريخ
      • باستخدام بيانات SQL
      • صيانة خادم SQL
    • تعلم تصميم المواقع
  • معلومات عنا
    • الفريق
      • تشيستر كوبربوت
      • جافين كلايتون
      • سونيل كومار
      • علي الأمين
    • محفظة
    • مقالات
    • وظائف
عربى (AR)čeština (CS)Deutsch (DE)English (EN-US)English (EN-GB)Español (ES)فارسی (FA)Français (FR)हिंदी (HI)italiano (IT)日本語 (JA)polski (PL)Português (PT)русский (RU)Türk (TR)中国的 (ZH)

بناء نظام أساسي لإدارة المحتوى في SQL Server و NET

كيفية إنشاء نظام إدارة المحتوى باستخدام قاعدة بيانات SQL Server وتطبيق نماذج الويب ASP.NET. هذا من الإصدار الأول من Ousia.

سياق الكلام

تمت كتابة هذه المقالة لأول مرة في عام 2012. تقدمت التكنولوجيا بشكل كبير في هذا الوقت ، لكننا سنتركها هنا في حال وجدها أي شخص مفيدة.

مرحبًا بك في المقالة الخاصة بإنشاء CMS. تتطلب هذه المقالة على الأقل بعض المعرفة الأساسية بـ SQL و HTML ، وتثبيت نسخة من SQL Server و Visual Studio 2008.

وصل موقعك إلى المرحلة حيث تريد البدء في إضافة المحتوى ديناميكيًا ، وهناك الكثير من الخيارات المتاحة ، سواء المجانية أو المدفوعة مقابل ( قائمة على ويكيبيديا ) ، ولكن ماذا عن إخراج الرجل الوسيط وبناء ملكك الخاص؟

دعنا ندخل مباشرة في الترميز ، الخطوة الأولى هي إضافة مخزن مستخدم ASP المدمج ، إذا لم تكن قد فعلت ذلك من قبل ، فاقرأ هذه المقالة مقدمة إلى العضوية .

الخطوة الثانية التي يجب اتخاذها هي إضافة جداول SQL والإجراءات المخزنة إلى قاعدة البيانات. تم تعيين الحقل DocumentID إلى مفتاح أساسي لتحسين الأداء. إذا كنت مبتدئًا في SQL ، فيرجى البحث عن الأفكار التالية ؛

  • المفاتيح الأساسية
  • مفاتيح خارجية
  • أنواع بيانات SQL

SQL

--Create Tables
CREATE TABLE DocumentMenu(
DocumentMenuID int IDENTITY(1,1) NOT NULL CONSTRAINT PK_DocumentMenuID PRIMARY KEY,
DocumentMenuName nvarchar(100) NULL,
DocumentMenuMulti bit NULL
)
INSERT INTO DocumentMenu(DocumentMenuName,DocumentMenuMulti) SELECT 'Home',0
INSERT INTO DocumentMenu(DocumentMenuName,DocumentMenuMulti) SELECT 'About',0
INSERT INTO DocumentMenu(DocumentMenuName,DocumentMenuMulti) SELECT 'SQL',0
INSERT INTO DocumentMenu(DocumentMenuName,DocumentMenuMulti) SELECT 'NET',0
GO
CREATE TABLE Document(
DocumentID int IDENTITY(1,1) NOT NULL CONSTRAINT PK_DocumentID PRIMARY KEY,
DocumentMenuLinkID int NULL CONSTRAINT FK_DocumentMenuLinkID FOREIGN KEY REFERENCES DocumentMenu(DocumentMenuID),
DocumentName varchar(100) NULL,
DocumentHeader varchar(100) NULL,
DocumentText varchar(max) NULL,
DocumentLastUpdated datetime NULL,
DocumentKeyWords varchar(250) NULL,
DocumentDescription varchar(250) NULL,
DocumentSubjects varchar(250) NULL
)
GO
INSERT INTO Document(DocumentMenuLinkID,DocumentName) SELECT 1,'Home'
INSERT INTO Document(DocumentMenuLinkID,DocumentName) SELECT 2,'About'
GO
--Update Documents
CREATE PROC UpdDocument(@DocumentID INT,@DocumentMenuLinkID INT,@DocumentName VARCHAR(100),@DocumentHeader VARCHAR(100),@DocumentText VARCHAR(MAX),@DocumentKeyWords VARCHAR(250),@DocumentDescription VARCHAR(250))
AS BEGIN
IF @DocumentID = 0 BEGIN
PRINT 'Insert'
INSERT INTO Document(DocumentMenuLinkID,DocumentName,DocumentHeader,DocumentText,DocumentLastUpdated,DocumentKeyWords,DocumentDescription)
SELECT @DocumentMenuLinkID,@DocumentName,@DocumentHeader,@DocumentText,GETDATE(),@DocumentKeyWords,@DocumentDescription
SELECT SCOPE_IDENTITY()
RETURN
END
IF @DocumentID <>0 BEGIN
PRINT 'Update'
UPDATE Document SET
DocumentMenuLinkID=@DocumentMenuLinkID,DocumentName=@DocumentName,DocumentHeader=@DocumentHeader,DocumentText=@DocumentText,
DocumentLastUpdated=GETDATE(),DocumentKeyWords=@DocumentKeyWords,DocumentDescription=@DocumentDescription
WHERE DocumentID=@DocumentID
END
END
GO
--Get Documents
CREATE PROC GetDocuments(@SubjString NVARCHAR(100)) AS BEGIN
DECLARE @DocumentMenuLinkID INT=(SELECT TOP 1 DocumentMenuID FROM DocumentMenu WHERE DocumentMenuName LIKE @SubjString)
SELECT 'Article: ' + DocumentName DocumentName,
REPLACE('Blog/'+DocumentSubjects+'/'+CAST(DocumentID AS VARCHAR(10)),' ','')+'/'+REPLACE(DocumentHeader,' ',' ') URL,
'Description: ' + DocumentDescription DocumentDescription,
'Keywords: ' + DocumentKeyWords DocumentKeyWords,
CONVERT(VARCHAR(10),DocumentLastUpdated,103) DocumentLastUpdated
FROM Document
INNER JOIN DocumentMenu ON DocumentMenuID=DocumentMenuLinkID
WHERE DocumentMenuLinkID=@DocumentMenuLinkID
ORDER BY DocumentLastUpdated DESC
END
GO
--Get Document
CREATE PROC GetDocument(@DocumentID INT) AS BEGIN
SELECT TOP 1 Document.*,DocumentMenuMulti
FROM Document
INNER JOIN DocumentMenu ON DocumentMenuID=DocumentMenuLinkID
WHERE DocumentID=@DocumentID
END
GO

إعداد التطبيق

هذا كل شيء بالنسبة لكود SQL ، والمرحلة التالية هي إعداد صفحات الويب للتعامل مع عرض المستند الخاص بنا ، وقائمة المستندات لتحريرها وتحرير صفحة المستند.

افتح إما مشروعًا جديدًا أو المشروع الذي تريد إضافة هذا إليه. نحتاج إلى إضافة Global.asax (فئة التطبيقات العالمية) إلى هذا المشروع ، وإضافة معالجة المسار إليه وتسجيل المسارات في الجدول. يحتوي التطبيق التالي على الصفحات التالية في متناول الجميع ؛

  • الصفحة الرئيسية
  • حول الصفحة
  • صفحة تسجيل الدخول (مغطاة في مقالة منفصلة)
  • دليل المدونة (كافة المستندات)
  • الدليل الفرعي للمدونة (SQL ، .NET على سبيل المثال)
  • مقالات المدونة

Web Routing Config

<connectionStrings>
  <add name="MySqlConnection"connectionString="Data Source={servername};Initial Catalog={databasename};Integrated Security=True"providerName="System.Data.SqlClient" />
<connectionStrings>
<system.web>
  <httpsRuntime requestValidationMode="2.0"/>
<system.web>
<system.webServer>
  <modules runAllManagedModulesForAllRequests="True"/>
<system.webServer>

يستورد

ستحتاج إلى استيراد System.Web.Routing.

لقد علقت على كل سطر لأظهر لك ما يفعله كل منهم. نحتاج أيضًا إلى إنشاء اتصال SQL في ملف تكوين الويب الخاص بنا.

أنا أستخدم TinyMCE ، محرر Java Script ، لذلك نحتاج أيضًا إلى تغيير وضع التحقق من صحة الطلب وتوجيه الصفحة يتطلب تحديث الوحدات النمطية.

LoaderVBC#

VB

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) 'This code you only need to update
  'Fires when the application is started
  RegisterRoutes(RouteTable.Routes)
End Sub
Sub RegisterRoutes(ByVal routes As RouteCollection) 'This code you will need to add
  routes.MapPageRoute("", "Home/", "~/Home.aspx", False, New RouteValueDictionary(New With {.ArticleID = "1"})) 'Manual Route ID 1 is home page
  routes.MapPageRoute("", "About/", "~/About.aspx", False, New RouteValueDictionary(New With {.ArticleID = "2"})) 'Manual Route
  routes.MapPageRoute("", "Blog/{ArticleSection}/{ArticleID}/{*pathInfo}", "~/ContentPage.aspx") 'Article route to ignore anything further than the Article ID
  routes.MapPageRoute("", "Blog/{ArticleSection}/{ArticleID}/", "~/ContentPage.aspx") 'Article route using the Article ID
  routes.MapPageRoute("", "Blog/{ArticleSection}/", "~/ContentSubj.aspx") 'Article route using the Section ID
  routes.MapPageRoute("", "Blog/{*pathInfo}", "~/ContentSubj.aspx") 'Route to take us into the index
  routes.MapPageRoute("", "DocumentManager/{DID}/", "~/ManageDocument.aspx") 'Route to take us to edit document
  routes.MapPageRoute("", "DocumentManager/", "~/ManageDocuments.aspx") 'Route to take us to the list of documents
End Sub

C#

public void Application_Start(object sender, EventArgs e) //This code you only need to update
{
  //Fires when the application is started
  RegisterRoutes(RouteTable.Routes);
}
public void RegisterRoutes(RouteCollection routes) //This code you will need to add
{
  routes.MapPageRoute("", "Home/", "~/Home.aspx", false, new RouteValueDictionary(new { ArticleID = "1" }));
  //Manual Route ID 1 is home page
  routes.MapPageRoute("", "About/", "~/About.aspx", false, new RouteValueDictionary(new { ArticleID = "2" }));
  //Manual Route
  routes.MapPageRoute("", "Blog/{ArticleSection}/{ArticleID}/{*pathInfo}", "~/ContentPage.aspx");
  //Article route to ignore anything further than the Article ID
  routes.MapPageRoute("", "Blog/{ArticleSection}/{ArticleID}/", "~/ContentPage.aspx");
  //Article route using the Article ID
  routes.MapPageRoute("", "Blog/{ArticleSection}/", "~/ContentSubj.aspx");
  //Article route using the Section ID
  routes.MapPageRoute("", "Blog/{*pathInfo}", "~/ContentSubj.aspx");
  //Route to take us into the index
  routes.MapPageRoute("", "DocumentManager/{DID}/", "~/ManageDocument.aspx");
  //Route to take us to edit document
  routes.MapPageRoute("", "DocumentManager/", "~/ManageDocuments.aspx");
  //Route to take us to the list of documents
}

إدارة مكتبة المستندات

هنا سيكون لدينا قائمة بجميع الوثائق ، وروابط لعرضها أو تحريرها ...

لهذا قم بإضافة نموذج ويب جديد يسمى ManageDocuments.aspx

LoaderHTMLVBC#

HTML

<div>
<asp:GridView ID="MyDocs" runat="server" AutoGenerateColumns="False" Width="100%" BorderStyle="None" GridLines="None">
    <Columns>
        <asp:HyperLinkField DataNavigateUrlFields="EditURL"DataTextField="DocName"
            HeaderText="EditDocument" />
        <asp:BoundField DataField="DocumentHeader"HeaderText="DocumentHeader" />
    </Columns>
</asp:GridView>
</div>
<div>
<a href="DocumentManager/0/">Add New</a>
</div>

VB

Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("MySqlConnection").ConnectionString)
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
  If User.IsInRole("SiteAdmin") Then
  'If Not IsPostBack Then
  Dim com As New SqlCommand("SELECT 'DocumentManager/'+CAST(DocumentID AS VARCHAR(10)) EditURL,DocumentName DocName,DocumentHeader,REPLACE('Blog/'+DocumentSubjects+'/'+CAST(DocumentID AS VARCHAR(10)),' ','')+'/'+DocumentName PreviewURL FROM Document", con)
  con.Open()
  Dim dr = com.ExecuteReader
  MyDocs.DataSource = dr
  MyDocs.DataBind()
  con.Close()
  'End If
  End If
End
 Sub

C#

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings("MySqlConnection").ConnectionString);
protected void Page_Load(object sender, System.EventArgs e)
{
  if (User.IsInRole("SiteAdmin"))
  {
  //If Not IsPostBack Then
  SqlCommand com = new SqlCommand("SELECT 'DocumentManager/'+CAST(DocumentID AS VARCHAR(10)) EditURL,DocumentName DocName,DocumentHeader,REPLACE('Blog/'+DocumentSubjects+'/'+CAST(DocumentID AS VARCHAR(10)),' ','')+'/'+DocumentName PreviewURL FROM Document", con);
  con.Open();
   dynamic dr = com.ExecuteReader;
  MyDocs.DataSource = dr;
  MyDocs.DataBind();
  con.Close();
  //wwwd If
  }
}

محرر النص

هنا استخدمت محرر نصوص Tiny MCE. لقد وجدت أن هذا يعمل بشكل جيد حقًا مع ما أردت تحقيقه ، ولكن هناك بضع خطوات أخرى متضمنة لاستخدامه ...

ابدأ بإضافة نموذج ويب جديد يسمى ManageDocument.aspx. قد تحتاج إلى إضافة مدير البرنامج النصي يدويًا.

LoaderHTMLJavaScriptVBC#

HTML

<asp:UpdatePanel ID="UpdatePanel4" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div style="text-align: center;">
<div>Menu</div>
<div>
    <asp:DropDownList ID="PageMenu" runat="server">
    </asp:DropDownList>
    </div>
<div>Page Name</div>
<div><asp:TextBox ID="PageName" runat="server" Width="400px"></asp:TextBox></div>
<div>Header</div>
<div><asp:TextBox ID="HeaderText" runat="server" Width="99%"></asp:TextBox></div>
<div>Content</div>
<div><textarea name="content" cols="1" rows="45" style="width: 100%; margin: 0 0 0 0;" id="ContentText" runat="server"></textarea></div>
<div>Key Words</div>
<div><asp:TextBox ID="KeyWords" runat="server" Width="99%"></asp:TextBox></div>
<div>Description</div>
<div><asp:TextBox ID="Description" runat="server" Width="99%"></asp:TextBox></div>
<div><asp:Button ID="AddUpdate" runat="server" Text="Button"/></div>
</div>
</ContentTemplate>
    <triggers>
        <asp:PostBackTrigger ControlID="AddUpdate"/>
    </triggers>
</asp:UpdatePanel>

JavaScript

<script type="text/javascript" src="/tiny_mce/tiny_mce_src.js">
</script>
<script type="text/javascript">
  tinyMCE.init({
  mode: "textareas",
  theme: "advanced",
  plugins: "emotions,spellchecker,advhr,insertdatetime,preview",
  theme_advanced_buttons1: "newdocument,|,bold,italic,underline,|,justifyleft,justifycenter,justifyright,fontselect,fontsizeselect,formatselect",
  theme_advanced_buttons2: "cut,copy,paste,|,bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,image,|,code,preview,|,forecolor,backcolor",
  theme_advanced_buttons3: "insertdate,inserttime,|,spellchecker,advhr,,removeformat,|,sub,sup,|,charmap,emotions",
  theme_advanced_toolbar_location: "top",
  theme_advanced_toolbar_align: "left",
  theme_advanced_statusbar_location: "bottom",
  width: '100%'
  });
  function UpdateTextArea() {
  tinyMCE.triggerSave(false, true);
  }
</script>

VB

Imports System.Data.SqlClient 
'Above your class
Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("MySqlConnection").ConnectionString)
  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
  If User.IsInRole("SiteAdmin") Then
  If Not IsPostBack Then
  If Not IsNothing(Page.RouteData.Values("DID")) Then
  AddUpdate.Attributes.Add("onclick", "UpdateTextArea()")
  Dim docID As String = Page.RouteData.Values("DID").ToString
  If docID = 0 Then
  AddUpdate.Text = "Add Document"
  Else
  AddUpdate.Text = "Update Document"
  End If
  Dim com As New SqlCommand("SELECT * FROM DocumentMenu WHERE (CASE WHEN " & docID & "=0 THEN 1 ELSE DocumentMenuMulti END)=DocumentMenuMulti; " & _
  "EXEC GetDocumentByID " & docID & "", con)
  con.Open()
  Dim da = New SqlDataAdapter(com)
  Dim ds As New DataSet
  da.Fill(ds)
  'Menu
  PageMenu.DataTextField = "DocumentMenuName"
   PageMenu.DataValueField = "DocumentMenuID"
  PageMenu.DataSource = ds.Tables(0)
  PageMenu.DataBind()
  'Data
  Dim dr = ds.Tables(1).CreateDataReader
   While dr.Read()
  PageMenu.SelectedValue = dr.Item(1).ToString
  PageName.Text = dr.Item(2).ToString
  HeaderText.Text = dr.Item(3).ToString
  ContentText.InnerHtml = httpsUtility.HtmlDecode(dr.Item(4).ToString)
  KeyWords.Text = dr.Item(6).ToString
  Description.Text = dr.Item(7).ToString
  PageMenu.Enabled = CBool(dr.Item(9).ToString)
   End While
  con.Close()
  Else
  Response.Redirect("/DocumentManager")
  End If
  Else
  End If
  Else
  Response.Redirect("/Login")
  End If
  End Sub
  Private Sub AddUpdate_Click() Handles AddUpdate.Click
  If Not IsNothing(Page.RouteData.Values("DID")) Then
  Dim docID As String = Page.RouteData.Values("DID").ToString
  Dim DocumentMenuLinkID As Integer = PageMenu.SelectedValue
  Dim DocumentName As String = Replace(PageName.Text, "'", "''")
  Dim DocumentHeader As String = Replace(HeaderText.Text, "'", "''")
  Dim DocumentText As String = Replace(ContentText.InnerHtml, "'", "''")
  Dim DocumentKeyWords As String = Replace(KeyWords.Text, "'", "''")
  Dim DocumentDescription As String = Replace(Description.Text, "'", "''")
  Dim com As New SqlCommand("EXEC UpdDocument " & docID & ",'" & DocumentMenuLinkID & "','" & DocumentName & "','" & DocumentHeader & "',N'" & DocumentText & "','" & DocumentKeyWords & "','" & DocumentDescription & "'", con)
  con.Open()
  Dim a As String = com.ExecuteScalar
  con.Close()
  If docID = 0 Then
  Response.Redirect("~/DocumentManager/" + a)
  End If
  End If
  End Sub

C#

using System.Data.Sql;//Above your class

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings("MySqlConnection").ConnectionString);
protected void Page_Load(object sender, System.EventArgs e)
{
  if (User.IsInRole("SiteAdmin"))
  {
  if (!IsPostBack)
  {
  if ((Page.RouteData.Values("DID") != null))
  {
   AddUpdate.Attributes.Add("onclick", "UpdateTextArea()");
  string docID = Page.RouteData.Values("DID").ToString;
  if (docID == 0)
  {
  AddUpdate.Text = "Add Document";
  }
  else
  {
  AddUpdate.Text = "Update Document";
  }
  SqlCommand com = new SqlCommand("SELECT * FROM DocumentMenu WHERE (CASE WHEN " + docID + "=0 THEN 1 ELSE DocumentMenuMulti END)=DocumentMenuMulti; " + "EXEC GetDocumentByID " + docID + "", con);
  con.Open();
  dynamic da = new SqlDataAdapter(com);
  DataSet ds = new DataSet();
  da.Fill(ds);
  //Menu
  PageMenu.DataTextField = "DocumentMenuName";
  PageMenu.DataValueField = "DocumentMenuID";
  PageMenu.DataSource = ds.Tables(0);
  PageMenu.DataBind();
  //Data
  dynamic dr = ds.Tables(1).CreateDataReader;
  while (dr.Read())
  {
  PageMenu.SelectedValue = dr.Item(1).ToString;
  PageName.Text = dr.Item(2).ToString;
   HeaderText.Text = dr.Item(3).ToString;
  ContentText.InnerHtml = httpsUtility.HtmlDecode(dr.Item(4).ToString);
  KeyWords.Text = dr.Item(6).ToString;
  Description.Text = dr.Item(7).ToString;
   PageMenu.Enabled = Convert.ToBoolean(dr.Item(9).ToString);
  }
  con.Close();
  }
  else
  {
  Response.Redirect("/DocumentManager");
  }
  }
  else
  {
  }
  }
  else
  {
  Response.Redirect("/Login");
  }
}
private void AddUpdate_Click()
{
  if ((Page.RouteData.Values("DID") != null))
  {
  string docID = Page.RouteData.Values("DID").ToString;
  int DocumentMenuLinkID = PageMenu.SelectedValue;
  string DocumentName = Strings.Replace(PageName.Text, "'", "''");
  string DocumentHeader = Strings.Replace(HeaderText.Text, "'", "''");
  string DocumentText = Strings.Replace(ContentText.InnerHtml, "'", "''");
  string DocumentKeyWords = Strings.Replace(KeyWords.Text, "'", "''");
  string DocumentDescription = Strings.Replace(Description.Text, "'", "''");
  SqlCommand com = new SqlCommand("EXEC UpdDocument " + docID + ",'" + DocumentMenuLinkID + "','" + DocumentName + "','" + DocumentHeader + "','" + DocumentText + "','" + DocumentKeyWords + "','" + DocumentDescription + "'", con);
  con.Open();
  string a = com.ExecuteScalar;
  con.Close();
  if (docID == 0)
  {
  Response.Redirect("~/DocumentManager/" + a);
  }
  }
}
  

صفحة الدليل

ستعرض هذه الصفحة جميع مقالاتك باستخدام موضوع المحتوى الذي قمنا بتوجيهه إليه.

الطريقة التي تم تصميمها بها يمكننا استخدام نفس الصفحة لقسمين ، بشكل فعال فقط توفير مرشح عند الحاجة ...

قم بإضافة نموذج ويب جديد ContentSubj.aspx

LoaderHTMLVBC#

HTML

<div><h1><asp:Label id="HeaderLabel" runat="server" Text="PageTitle"></asp:Label></h1></div>
<div id="ContentText" runat="server"></div>
<div>
<asp:GridView id="ContentSub" runat="server" AutoGenerateColumns="False" GridLines="None"ShowHeader="False"Width="100%">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
               <div style="width: 80%; float: left;">
                   <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("HyperLink") %>' Text='<%# Eval("DocumentName") %>'></asp:HyperLink>
               </div>
               <div style="width: 19%; float: left;">
                   <asp:Label ID="Label2" runat="server" text='<%# Eval("DocumentLastUpdated") %>'></asp:Label>
               </div>
               <div style="width: 100%; float: left; clear: both;">
                   <asp:Label ID="Label1" runat="server" text='<%# Eval("DocumentDescription") %>'></asp:Label>
               </div>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
</div>

VB

Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("MySqlConnection").ConnectionString)
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  Try
  Page.Title = "gsclayton.net Technical Articles"
  Page.MetaKeywords = "gsclayton.net, Databases, Web Design, SQL, HTML, .NET, ASP, CSS, Technical Articles"
  Page.MetaDescription = "gsclayton.net Databases and Web Design, SQL, HTML, .NET, ASP, CSS, Technical Articles"
  Dim Str As String = Replace(Page.RouteData.Values("Subj").ToString, "'", "''")
  Subject.Text = "La " + Str + " Articles"
  Dim com As New SqlCommand("EXEC GetDocuments '%" & Str & "%'", con)
  con.Open()
  Dim dr = com.ExecuteReader
  MyDocs.DataSource = dr
  MyDocs.DataBind()
  dr.Close()
  con.Close()
  Catch ex As Exception
  Response.Redirect("/Blog")
  End Try
End Sub

C#

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings("MySqlConnection").ConnectionString);
protected void Page_Load(object sender, System.EventArgs e)
{
  try
  {
  Page.Title = "gsclayton.net Technical Articles";
  Page.MetaKeywords = "gsclayton.net, Databases, Web Design, SQL, HTML, .NET, ASP, CSS, Technical Articles";
  Page.MetaDescription = "gsclayton.net Databases and Web Design, SQL, HTML, .NET, ASP, CSS, Technical Articles";
  string Str = Strings.Replace(Page.RouteData.Values("Subj").ToString, "'", "''");
  Subject.Text = "La " + Str + " Articles";
  SqlCommand com = new SqlCommand("EXEC GetDocuments '%" + Str + "%'", con);
  con.Open();
  dynamic dr = com.ExecuteReader;
  MyDocs.DataSource = dr;
  MyDocs.DataBind();
  dr.Close();
  con.Close();
  }
  catch (Exception ex)
  {
  Response.Redirect("/Blog");
  }
}

صفحات المحتوى

إذا كنت لا تحتاج إلى محتوى مخصص في الصفحة الرئيسية الخاصة بك وحول الصفحات ، فما عليك سوى إضافة صفحة المحتوى وتعديل توجيه الصفحة ...

في هذه الصفحات ، يمكنك الإضافة والتصميم بالطريقة التي تريدها ، ولكن طالما أن لديك الكود التالي ، فستعمل.

LoaderHTMLVBC#

HTML

<h1><asp:Label ID="Subject" runat="server" Text="My QMS System"></asp:Label></h1>
<div id="MyContent" runat="server"></div>
<div id="LastUpd" runat="server" style="clear: both;"></div>

VB

Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("MySqlConnection").ConnectionString)
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
  'If Not IsPostBack Then
If Not IsNothing(Page.RouteData.Values("ArticleID")) Then
  Dim LastUpdated As Label = Master.FindControl("LastUpdatedLabel") 'Control on my Master Page, this can be added to your page insteadv as a labeldocID
  Dim did As String = Page.RouteData.Values("ArticleID").ToString
  Dim com As New SqlCommand("EXEC GetDocument '" & Replace(did, "'", "''") & "'", con)
  con.Open()
  Dim dr = com.ExecuteReader
  While dr.Read()
  HeaderLabel.Text = dr.Item(3).ToString
  ContentText.InnerHtml = httpsUtility.HtmlDecode(dr.Item(4).ToString)
  LastUpdated.Text = Format(CDate(dr.Item(5).ToString), "dd/MM/yyyy")
  Page.Header.Title = dr.Item(3).ToString
  MetaKeywords = dr.Item(6).ToString
  MetaDescription = dr.Item(7).ToString
  End While
  dr.Close()
  con.Close()
  'End If
End If
End Sub

C#

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings("MySqlConnection").ConnectionString);
protected void Page_Load(object sender, System.EventArgs e)
{
 //If Not IsPostBack Then
 if ((Page.RouteData.Values("ArticleID") != null)) {
  Label LastUpdated = Master.FindControl("LastUpdatedLabel");
 //Control on my Master Page, this can be added to your page insteadv as a labeldocID
 string did = Page.RouteData.Values("ArticleID").ToString;
  SqlCommand com = new SqlCommand("EXEC GetDocument '" + Strings.Replace(did, "'", "''") + "'", con);
  con.Open();
  dynamic dr = com.ExecuteReader;
 while (dr.Read()) {
  HeaderLabel.Text = dr.Item(3).ToString;
  ContentText.InnerHtml = httpsUtility.HtmlDecode(dr.Item(4).ToString);
  LastUpdated.Text = Strings.Format(Convert.ToDateTime(dr.Item(5).ToString), "dd/MM/yyyy");
  Page.Header.Title = dr.Item(3).ToString;
  MetaKeywords = dr.Item(6).ToString;
  MetaDescription = dr.Item(7).ToString;
  }
  dr.Close();
  con.Close();
  }
}

تغليف

هذا مستند قديم ، ولكنه لا يزال يحتوي على أفكار ذات صلة ، لذا استخدمه كقاعدة لأي شيء تريد القيام به!

Helpful?

Please note, this commenting system is still in final testing.

Author

Copyright Claytabase Ltd 2020

Registered in England and Wales 08985867

RSSLoginLink سياسة ملفات الارتباطخريطة الموقع

Social Media

facebook.com/Claytabaseinstagram.com/claytabase/twitter.com/Claytabaselinkedin.com/company/claytabase-ltd

Get in Touch

+442392064871info@claytabase.comClaytabase Ltd, Unit 3d, Rink Road Industrial Estate, PO33 2LT, United Kingdom
The settings on this site are set to allow all cookies. These can be changed on our Cookie Policy & Settings page.
By continuing to use this site you agree to the use of cookies.
Ousia Logo
Logout
Ousia CMS Loader