2017-05-10 4 views
0

Ich möchte nur fragen, wie die eindeutigen verbundenen Benutzer in unserem System angezeigt werden, weil ich ein Ereignisverwaltungssystem in Visual Studio 2013 gemacht habe, und ich möchte anzeigen, wie viele an meinem teilgenommen haben bestimmtes erstelltes Ereignis bereits. Ich habe einen Code ausprobiert, aber es funktioniert nicht, es hat keine Fehler, aber es funktioniert nicht. Kannst du mir helfen? Vielen Dank im Voraus.Angezeigte Benutzer zu einem bestimmten Ereignis anzeigen

Hier ist mein Code:

private void tbx_joined_TextChanged(object sender, EventArgs e) 
    { 
     String Query = "select count(distinct d.jusername) from dbems.db_join d, dbems.create_event c where d.jeventname = c.eventname"; 
     MySqlConnection conDataBase = new MySqlConnection(db.mystring()); 
     MySqlCommand cmdDataBase = new MySqlCommand(Query, conDataBase); 
     MySqlDataReader myReader; 

     try 
     { 
      conDataBase.Open(); 
      myReader = cmdDataBase.ExecuteReader(); 

      while (myReader.Read()) 
      { 
       //"count(distinct d.jusername)" 
       string evjoined = myReader.GetInt32(Query).ToString(); 

       tbx_joined.Text = evjoined; 

      } 
     } 

     catch (Exception) 
     { 

     } 

    } 
+0

hat diese Lösung für Sie funktioniert? – kblau

+0

Ich werde es versuchen, obwohl ich nicht weiß, wie man es benutzt. Wo werde ich diese Abfrage eingeben? Danke für die Antwort. –

+0

Verwenden Sie 'cmdDataBase.ExecuteScalar' ohne' while' Schleife. –

Antwort

0

Hier ist das Skript Sie Ihre Tabellen und Daten zu beheben laufen:

--USE your db here 
USE [Breaz] 
GO 
/****** Object: Table [dbo].[dbemEvent] Script Date: 5/10/2017 4:01:15 PM ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
SET ANSI_PADDING ON 
GO 
CREATE TABLE [dbo].[dbemEvent](
    [Id] [int] IDENTITY(1,1) NOT NULL, 
    [EventName] [varchar](15) NOT NULL, 
CONSTRAINT [PK_dbemEvent] PRIMARY KEY CLUSTERED 
(
    [Id] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

GO 
SET ANSI_PADDING OFF 
GO 
/****** Object: Table [dbo].[dbemUser] Script Date: 5/10/2017 4:01:15 PM ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
SET ANSI_PADDING ON 
GO 
CREATE TABLE [dbo].[dbemUser](
    [Id] [int] IDENTITY(1,1) NOT NULL, 
    [Event] [int] NULL, 
    [UserName] [varchar](15) NULL, 
CONSTRAINT [PK_dbemUser] PRIMARY KEY CLUSTERED 
(
    [Id] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

GO 
SET ANSI_PADDING OFF 
GO 
SET IDENTITY_INSERT [dbo].[dbemEvent] ON 

GO 
INSERT [dbo].[dbemEvent] ([Id], [EventName]) VALUES (1, N'School') 
GO 
INSERT [dbo].[dbemEvent] ([Id], [EventName]) VALUES (2, N'Home') 
GO 
SET IDENTITY_INSERT [dbo].[dbemEvent] OFF 
GO 
SET IDENTITY_INSERT [dbo].[dbemUser] ON 

GO 
INSERT [dbo].[dbemUser] ([Id], [Event], [UserName]) VALUES (1, 1, N'Bob') 
GO 
INSERT [dbo].[dbemUser] ([Id], [Event], [UserName]) VALUES (2, 1, N'Ken') 
GO 
INSERT [dbo].[dbemUser] ([Id], [Event], [UserName]) VALUES (3, 2, N'Nick') 
GO 
INSERT [dbo].[dbemUser] ([Id], [Event], [UserName]) VALUES (4, 2, N'Jack') 
GO 
SET IDENTITY_INSERT [dbo].[dbemUser] OFF 
GO 
ALTER TABLE [dbo].[dbemUser] WITH CHECK ADD CONSTRAINT [FK_dbemUser_dbemEvent] FOREIGN KEY([Event]) 
REFERENCES [dbo].[dbemEvent] ([Id]) 
GO 
ALTER TABLE [dbo].[dbemUser] CHECK CONSTRAINT [FK_dbemUser_dbemEvent] 
GO 

Hier ist die neue Abfrage, die Sie verwenden können:

SELECT COUNT(u.id) 
FROM dbemUser u JOIN 
dbemEvent e 
ON u.Event = e.Id 
WHERE e.EventName = 'Home' 
Verwandte Themen