Verileri çok sayfalı bir sql sayfamdan aspx sayfamda görüntülemeye çalışıyorum ancak bir şeyleri togheter alamıyorum.Aspx sayfasında sql sorgu göstergesinden birden çok değer var
SQL'den değerler görüntülemek istediğim bir ana sayfam var.
Benim masterpage (Site.Master): dosyanın arkasında
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="MySite.SiteMaster" %>
<!DOCTYPE html>
<html lang="en">
<head runat="server"></head>
<body>
<form runat="server">
<div class="content">
<div>
<font class="label label-primary"><%= DateTime.Now.ToShortDateString() %>
<asp:Label runat="server" ID="LabelCountMember"></asp:Label>
<asp:Label runat="server" ID="LabelCountLogins"></asp:Label>
<asp:Label runat="server" ID="LabelCountFailedLogins"></asp:Label>
</div>
<asp:ContentPlaceHolder ID="MainContent" runat="server">
</asp:ContentPlaceHolder>
<hr />
<footer>
<p>This is my footer!</p>
</footer>
</div>
</form>
</body>
</html>
Kodum (Site.Master.cs):
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.Web.Configuration;
using System.Data;
namespace MySite
{
public partial class SiteMaster : MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
}
public void countmembers(object sender, EventArgs e)
{
string sql = @"SELECT (SELECT COUNT(MemberID) from MyTable where Mamber = 'Registered') AS AllRegMembers,
(SELECT COUNT(MemberID) from MyTable where LoginStatus = 'ok') AS AllLogins,
(SELECT COUNT(MemberID) from MyTable where LoginStatus = 'fail') AS AllFailLogins";
string variable;
using (var connection = new SqlConnection(WebConfigurationManager.ConnectionStrings["ConnString"].ConnectionString))
using (var command = new SqlCommand(sql, connection))
{
connection.Open();
using (var reader = command.ExecuteReader())
{
//Check the reader has data:
if (reader.Read())
{
variable = reader.GetInt32(reader.GetOrdinal("AllRegMembers")).ToString();
}
// If you need to use all rows returned use a loop:
while (reader.Read())
{
// Do something
string strAllRegMembers = reader.GetInt32(reader.GetOrdinal("AllRegMembers")).ToString();
string strAllLogins = reader.GetInt32(reader.GetOrdinal("AllLogins")).ToString();
string strAllFailLogins = reader.GetInt32(reader.GetOrdinal("AllFailLogins")).ToString();
Label.LabelCountMember.Text = strAllRegMembers;
Label.LabelCountLogins.Text = strAllLogins;
Label.LabelCountFailedLogins.Text = strAllFailLogins;
}
}
}
}
}
}
temel Aşağıdaki yapıya sıralamak için bana yardım edin. Birçok farklı yöntem denedim ama hiçbiri işe yaramaz ve bir okuyucudan çoklu değerler ile uğraşırken basit bir örnek bulamıyorum. Yanlışlıkla anahtar kelimelerle arama yapıyorum.
Aşağıdaki kodu kullanarak Klasik ASP'de çalışmaya başlayabilirim ancak C# 'ye geçmeye başlamak istiyorum.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="dbcon.asp" -->
<%
sql = "SELECT (SELECT COUNT(MemberID) from MyTable where Mamber = 'Registered') AS AllRegMembers, " & _
"SELECT COUNT(MemberID) from MyTable where LoginStatus = 'ok') AS AllLogins, " & _
"(SELECT COUNT(MemberID) from MyTable where LoginStatus = 'fail') AS AllFailLogins";"
call dbOpen(conn)
Set rs = conn.Execute(sql)
strAllRegMembers = rs("AllRegMembers")
strAllLogins = rs("AllLogins")
strAllFailLogins = rs("AllFailLogins")
rs.Close : Set rs = Nothing
Call dbClose(conn)
%>
<!DOCTYPE HTML>
<html>
<head></head>
<body>
<span>Registered members: <%= strAllRegMembers %></span>
<span>Number of OK logins: <%= strAllLogins %></span>
<span>Number of failed logins: <%= strAllFailLogins %></span>
</body>
</html>
Chris ve Jo Biesta sayesinde altında bir çalışma codebehind dosya folows. Perfekt beyler, teşekkürler!
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.Web.Configuration;
using System.Data;
namespace MySite
{
public partial class SiteMaster : MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
countmembers();
}
public void countmembers()
{
string strAllRegMembers = String.Empty;
string strAllLogins = String.Empty;
string strAllFailLogins = String.Empty;
string sql = @"SELECT (SELECT COUNT(MemberID) from MyTable where Mamber = 'Registered') AS AllRegMembers,
(SELECT COUNT(MemberID) from MyTable where LoginStatus = 'ok') AS AllLogins,
(SELECT COUNT(MemberID) from MyTable where LoginStatus = 'fail') AS AllFailLogins";
string variable;
using (var connection = new SqlConnection(WebConfigurationManager.ConnectionStrings["ConnString"].ConnectionString))
using (var command = new SqlCommand(sql, connection))
{
connection.Open();
using (var reader = command.ExecuteReader())
{
//Check the reader has data:
if (reader.Read())
{
variable = reader.GetInt32(reader.GetOrdinal("AllRegMembers")).ToString();
}
// If you need to use all rows returned use a loop:
while (reader.Read())
{
// Do something
strAllRegMembers = reader.GetInt32(reader.GetOrdinal("AllRegMembers")).ToString();
strAllLogins = reader.GetInt32(reader.GetOrdinal("AllLogins")).ToString();
strAllFailLogins = reader.GetInt32(reader.GetOrdinal("AllFailLogins")).ToString();
}
}
}
LabelCountMember.Text = strAllRegMembers;
LabelCountLogins.Text = strAllLogins;
LabelCountFailedLogins.Text = strAllFailLogins;
}
}
}
Bunu yararlı bulabileceğiniz diğer kullanıcılar için. Eğer dönerseniz değerler yerine bu metin biçiminde kullanılmaktadır: göründüğü
ben kaçırmıştım sürecereader.GetString(reader.GetOrdinal("AllRegMembers"));
Şimdi kesme noktaları eklemek için denedim ve farklı bir şekilde hayır ancak sayfa yükten yöntemini çağırmak deneyin. Kaç tane kesme noktası tanımladığımı ("Ne zaman vuruldu" mesajını ve "hit sayımı" nı kullanmayı denedim ama nope). Nasıl koşturabilirim? Page_load countmembers() 'ı eklemeye çalıştım, ayrıca aspx dosyasına countmembers() eklemeyi denedim ama – Slint
@Slint'i kontrol etmek için Chris tarafından sola yazılan cevabı kontrol edin, gönderdiği aynı kodu öneririm. –
Evet, Chris örnek çalıştı. LabelHuntMembers.Text Label.LabelCountMemebers.Text ile ilk hatalarımı düzeltmek için sadece teşekkürler. – Slint