2017-05-10 5 views
0

私はイベント管理システムをVisual Studio 2013に作成したので、私たちのシステムにユニークな参加ユーザーを表示する方法を尋ねたいだけです。既に作成されたイベントコードを試しましたが、動作しません。エラーはありませんが、動作しません。手伝って頂けますか?前もって感謝します。ここで特定のイベントで参加したユーザーを表示する

は私のコードです:

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

このソリューションはあなたのために機能しましたか? – kblau

+0

私はそれを使う方法がわからなくてもそれを試してみるつもりです。そのクエリはどこに入力しますか?応答していただきありがとうございます。 –

+0

'while'ループなしで' cmdDataBase.ExecuteScalar'を使用してください。 –

答えて

0

ここでは、あなたのテーブルとデータを修正するために実行するスクリプトです:

--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 

ここではあなたが使用できる新しいクエリです:

SELECT COUNT(u.id) 
FROM dbemUser u JOIN 
dbemEvent e 
ON u.Event = e.Id 
WHERE e.EventName = 'Home' 
関連する問題