Você está na página 1de 15

Table For Quiz

use Quizing_System --Drop table IF EXISTS(SELECT * FROM [SYSOBJECTS] WHERE [ID] = OBJECT_ID('Quiz') AND [XTYPE] = 'U') DROP TABLE Quiz GO --Create table CREATE TABLE Quiz ( QuizId INT IDENTITY(1,1), QuizName VARCHAR(50) NOT NULL, IsActive BIT NOT NULL DEFAULT 1, CreateDate DATETIME NOT NULL, CreateBy VARCHAR(50) NOT NULL, UpdateDate DATETIME NULL, UpdateBy VARCHAR(50) NULL ) GO ALTER TABLE Quiz ADD CONSTRAINT [DF_Quiz_CreateDate] DEFAULT GETDATE() FOR [CreateDate] GO ALTER TABLE Quiz ADD CONSTRAINT [DF_Quiz_CreateBy] DEFAULT SYSTEM_USER FOR [CreateBy] GO

--Create triggers CREATE TRIGGER tg_Quiz_Update ON Quiz AFTER UPDATE AS BEGIN UPDATE Quiz SET [UpdateDate] = GETDATE(), [UpdateBy] = SYSTEM_USER FROM Quiz [Q] INNER JOIN [INSERTED] [I] ON [Q].[QuizId] = [I].[QuizId] END GO

Table For Question


use Quizing_System --Drop table IF EXISTS(SELECT * FROM [SYSOBJECTS] WHERE [ID] = OBJECT_ID('Question') AND [XTYPE] = 'U') DROP TABLE Question

GO --Create table CREATE TABLE Question ( QuizId QuestionId Question CreateDate CreateBy UpdateDate UpdateBy )

INT INT VARCHAR(100) DATETIME VARCHAR(50) DATETIME VARCHAR(50)

NULL, IDENTITY(1,1), NOT NULL, NOT NULL, NOT NULL, NULL, NULL

GO ALTER TABLE Question ADD CONSTRAINT [DF_Question_CreateDate] DEFAULT GETDATE() FOR [CreateDate] GO ALTER TABLE Question ADD CONSTRAINT [DF_Question_CreateBy] DEFAULT SYSTEM_USER FOR [CreateBy] GO --Create triggers CREATE TRIGGER tg_Question_Update ON Question AFTER UPDATE AS BEGIN UPDATE Question SET [UpdateDate] = GETDATE(), [UpdateBy] = SYSTEM_USER FROM Question [Qu] INNER JOIN [INSERTED] [I] ON [Qu].[QuestionId] = [I].[QuestionId] END GO

Table For Options


use Quizing_System --Drop table IF EXISTS(SELECT * FROM [SYSOBJECTS] WHERE [ID] = OBJECT_ID('Options') AND [XTYPE] = 'U') DROP TABLE Options GO --Create table CREATE TABLE Options (

OptionId Options QuestionId IsCorrect CreateDate CreateBy UpdateDate UpdateBy )

INT VARCHAR(50) INT BIT DATETIME VARCHAR(50) DATETIME VARCHAR(50)

IDENTITY(1,1), NOT NULL, NULL, DEFAULT 0 NOT NULL, NOT NULL, NOT NULL, NULL, NULL

GO ALTER TABLE Options ADD CONSTRAINT [DF_Options_CreateDate] DEFAULT GETDATE() FOR [CreateDate] GO ALTER TABLE Options ADD CONSTRAINT [DF_Options_CreateBy] DEFAULT SYSTEM_USER FOR [CreateBy] GO --Create triggers CREATE TRIGGER tg_Option_Update ON Options AFTER UPDATE AS BEGIN UPDATE Options SET [UpdateDate] = GETDATE(), [UpdateBy] = SYSTEM_USER FROM Options [Op] INNER JOIN [INSERTED] [I] ON [Op].[OptionId] = [I].[OptionId] END GO CREATE TRIGGER tg_Options_Insert ON Options FOR UPDATE AS BEGIN UPDATE dbo.QuestionOptionMapping SET OptionId = (SELECT OptionId FROM INSERTED), Options = (SELECT Options FROM INSERTED) WHERE QuestionId = (SELECT QuestionId FROM INSERTED)

END GO

Table For Users


use Quizing_System --Drop table IF EXISTS(SELECT * FROM [SYSOBJECTS] WHERE [ID] = OBJECT_ID('User1') AND [XTYPE] = 'U') DROP TABLE User1 GO CREATE TABLE User1 ( UserId FullName UserName RoleId Password Address EmailId PhoneNo CreateDate CreateBy UpdateDate UpdateBy )

INT IDENTITY(1,1) VARCHAR(50) varchar(30) INT VARCHAR(50) VARCHAR(50) VARCHAR(50) VARCHAR(10) DATETIME VARCHAR(50) DATETIME VARCHAR(50)

NOT NULL , NOT NULL, not NULL, NOT NULL, NOT NULL, NOT NULL, NULL, NULL, NOT NULL, NOT NULL, NULL, NULL

GO ALTER TABLE User1 ADD CONSTRAINT [DF_User_CreateDate] DEFAULT GETDATE() FOR [CreateDate] GO ALTER TABLE User1 ADD CONSTRAINT [DF_User_CreateBy] DEFAULT SYSTEM_USER FOR [CreateBy] GO CREATE TRIGGER tg_User_Update ON user1 AFTER UPDATE AS BEGIN UPDATE User1 SET [UpdateDate] = GETDATE(), [UpdateBy] = SYSTEM_USER FROM User1 [u] INNER JOIN [INSERTED] [I] ON [u].[userId] = [I].[UserId] END GO

Table For Roles


use Quizing_System --Drop table IF EXISTS(SELECT * FROM [SYSOBJECTS] WHERE [ID] = OBJECT_ID('RoleId') AND [XTYPE] = 'U') DROP TABLE RoleId GO

--Create table CREATE TABLE RoleId ( UserId RoleId ) GO

INT INT

NOT NULL, NOT NULL,

Table For QuestionOptionMapping


use Quizing_System --Drop table IF EXISTS(SELECT * FROM [SYSOBJECTS] WHERE [ID] = OBJECT_ID('QuestionOptionMapping') AND [XTYPE] = 'U') DROP TABLE QuestionOptionMapping GO --Create table

CREATE TABLE QuestionOptionMapping ( QuestionId Question Options OptionId IsOptionCorrect ) GO

INT VARCHAR(100) VARCHAR(100) INT BIT

NOT NULL, NULL, NULL, NULL, NULL

STORED PROCEDURES

Procedure For Adding Quiz


CREATE PROCEDURE [dbo].[AddQuiz] ( @QuizName varchar(100) ) AS INSERT INTO dbo.Quiz (QuizName) VALUES (@QuizName)

Procedure For Adding Question


ALTER PROCEDURE [dbo].[AddQuestion] ( @QuestionFull varchar(100), @QuizId INT, @QuestionId INT OUTPUT ) AS INSERT INTO dbo.Question (QuizId,Question) VALUES (@QuizId,@QuestionFull) SELECT @QuestionId = QuestionId FROM dbo.Question WHERE QuizId = @QuizId

Procedure For Adding Options


Alter PROCEDURE [dbo].[AddOption] ( @Option varchar(50), @QuestionId INT, @OptionId INT OUTPUT ) AS INSERT INTO dbo.Options (Options, QuestionId) VALUES (@Option, @QuestionId) select @OptionId = optionId from Options where Questionid = @QuestionId

Procedure For Adding User


Alter PROCEDURE AddUser ( @UserName Varchar(30), @FullName VARCHAR(50), @RoleId INT, @Password Varchar(50), @EmailId Varchar(100), @Address VARCHAR(100), @PhoneNo VARCHAR(10) ) AS INSERT INTO dbo.User1(FullName,UserName,Password,EmailId,Address,PhoneNo,RoleId) VALUES (@FullName,@UserName,@Password,@EmailId,@Address,@PhoneNo,@RoleId)

Procedure For QuestionOptionMapping


ALTER PROCEDURE [dbo].[AddOptionQuestion] (

@QuestionFull Varchar(100), @Options Varchar(100), @QuestionId INT, @OptionId INT ) AS INSERT INTO QuestionOptionMapping(Question,Options,QuestionId,OptionId) VALUES (@QuestionFull,@Options,@QuestionId,@OptionId)

CreateQuiz.aspx.cs
using using using using using using using using using System; System.Collections.Generic; System.Linq; System.Web; System.Web.UI; System.Web.UI.WebControls; System.Configuration; System.Data.SqlClient; System.Data;

namespace QuizingSystem.Pages { public partial class WebForm3 : System.Web.UI.Page { string constr = ConfigurationManager.ConnectionStrings["ConnectDataBase"].ConnectionString; SqlConnection connection; SqlDataReader dr; //SqlDataAdapter daa; //******************* SqlCommand command4; SqlCommand command5; String spAddQuiz = "AddQuiz"; protected void Page_Load(object sender, EventArgs e) { connection = new SqlConnection(constr); } protected void Button1_Click(object sender, EventArgs e) { command4 = new SqlCommand(spAddQuiz, connection); command4.CommandType = CommandType.StoredProcedure; command4.Parameters.AddWithValue("@QuizName", TbQuizName.Text); connection.Open(); command4.ExecuteNonQuery(); command5=new SqlCommand("Select QuizId from Quiz where QuizName='" +TbQuizName.Text+ "'", connection); dr = command5.ExecuteReader(); dr.Read(); String str = dr.GetInt32(0).ToString(); Session["field1"] = str; Response.Redirect("Home.aspx"); } }}

SetQuestion.aspx.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Configuration; using System.Data.SqlClient; using System.Data; using System.Text; namespace QuizingSystem.Pages { public partial class WebForm1 : System.Web.UI.Page { string constr = ConfigurationManager.ConnectionStrings["ConnectDataBase"].ConnectionString; SqlConnection connection; SqlCommand command1, command2, command3, command4; string spAddQuestion = "AddQuestion"; String spAddOption = "AddOption"; string spAddOptionQuestion = "AddOptionQuestion"; static Int32 QuestionNo1 = 1;

protected void Page_Load(object sender, EventArgs e) { connection = new SqlConnection(constr); string str = (string)(Session["field1"]); LbQuestionNo.Text = QuestionNo1.ToString(); LbQuizId.Text = str; } protected void Button1_Click(object sender, EventArgs e) { QuestionNo1 = QuestionNo1 + 1; LbQuestionNo.Text = QuestionNo1.ToString(); command3 = new SqlCommand(spAddOptionQuestion, connection); command3.CommandType = CommandType.StoredProcedure; SqlParameter OptionIdOut = new SqlParameter("@OptionId", SqlDbType.Int); OptionIdOut.Direction = ParameterDirection.Output;

SqlParameter QuestionIdOut = new SqlParameter("@QuestionId", SqlDbType.VarChar,100); QuestionIdOut.Direction = ParameterDirection.Output; command1 = new SqlCommand(spAddQuestion, connection); command1.CommandType = CommandType.StoredProcedure; command1.Parameters.AddWithValue("@QuestionFull", TbQuestion.Text); command1.Parameters.AddWithValue("@QuizId", LbQuizId.Text); command1.Parameters.Add(QuestionIdOut); connection.Open(); command1.ExecuteNonQuery(); Int32 QuestionIdOutput = Convert.ToInt32(QuestionIdOut.Value.ToString());

string str1 = Tboption1.Text.ToString(); string str2 = Tboption2.Text.ToString(); string str3 = Tboption3.Text.ToString(); string str4 = Tboption4.Text.ToString(); string[] Option = { str1, str2, str3, str4 }; command2 = new SqlCommand(spAddOption, connection); command2.CommandType = CommandType.StoredProcedure;

if (Tboption3.Visible == true && Tboption4.Visible == true) { for (int i = 0; i < 4; i++) { command2.Parameters.AddWithValue("@Option", Option[i]); command2.Parameters.AddWithValue("@QuestionId", QuestionIdOutput); command2.Parameters.Add(OptionIdOut); command2.ExecuteNonQuery(); command2.Parameters.Clear(); command3.Parameters.AddWithValue("@QuestionFull", TbQuestion.Text); command3.Parameters.AddWithValue("@Options", Option[i]); command3.Parameters.AddWithValue("@QuestionId", QuestionIdOutput.ToString()); command3.Parameters.AddWithValue("Optionid", OptionIdOut.Value.ToString()); command3.ExecuteNonQuery(); command3.Parameters.Clear(); } }

if (Tboption3.Visible == false) { for (int i = 0; i < 2; i++) { command2.Parameters.AddWithValue("@Option", Option[i]); command2.Parameters.AddWithValue("@QuestionId", QuestionIdOutput); command2.Parameters.Add(OptionIdOut); command2.ExecuteNonQuery(); command2.Parameters.Clear(); command3.Parameters.AddWithValue("@QuestionFull", TbQuestion.Text); command3.Parameters.AddWithValue("@Options", Option[i]); command3.Parameters.AddWithValue("@QuestionId", QuestionIdOutput); command3.Parameters.AddWithValue("Optionid", OptionIdOut.Value.ToString()); command3.ExecuteNonQuery(); command3.Parameters.Clear(); } }

if (Tboption4.Visible == false && Tboption3.Visible == true) { for (int i = 0; i < 3; i++) { command2.Parameters.AddWithValue("@Option", Option[i]); command2.Parameters.AddWithValue("@QuestionId", QuestionIdOutput); command2.Parameters.Add(OptionIdOut); command2.ExecuteNonQuery(); command2.Parameters.Clear(); command3.Parameters.AddWithValue("@QuestionFull", TbQuestion.Text); command3.Parameters.AddWithValue("@Options", Option[i]); command3.Parameters.AddWithValue("@QuestionId", QuestionIdOutput.ToString()); command3.Parameters.AddWithValue("Optionid", OptionIdOut.Value.ToString()); command3.ExecuteNonQuery(); command3.Parameters.Clear(); }

ClientScript.RegisterStartupScript(typeof(Page), "test", "<script>alert('Question Added');return false;</script>"); Tboption1.Text = null; Tboption2.Text = null; Tboption3.Text = null; Tboption4.Text = null; TbQuestion.Text = null; } protected void Option2_CheckedChanged(object sender, EventArgs e) { LbOption3.Visible = false; LbOption4.Visible = false; Tboption3.Visible = false; Tboption4.Visible = false; op3.Visible = false; op4.Visible = false; } protected void RbOptions3_CheckedChanged(object sender, EventArgs e) { LbOption4.Visible = false; Tboption4.Visible = false; LbOption3.Visible = true; Tboption3.Visible = true; op3.Visible = true; op4.Visible = false; } protected void RbOptions4_CheckedChanged(object sender, EventArgs e) { LbOption3.Visible = LbOption4.Visible = Tboption3.Visible = Tboption4.Visible = op3.Visible = true; op4.Visible = true; } true; true; true; true;

} }

Você também pode gostar