Sql 多用户同时登录
我创建了一个在线考试系统。一次只使用一个用户就可以正常工作。但是,当多个用户登录时会出现问题 每次考试有20道题。如果只有一个用户在做测试,它就可以正常工作。用户可以完成所有20个问题。现在,另一个用户同时登录。该用户没有得到全部20个问题。假设User1已经完成了12个问题。用户2只会得到8个问题 假设有User1、User2、User3同时登录。用户1问了8个问题,用户2问了6个问题,用户3也问了8个问题。他们都会在没有完成20个问题的情况下到达结果页面。这意味着如果有20个用户,他们只会得到1个问题,而不是20个。有人能帮忙吗Sql 多用户同时登录,sql,asp.net,sql-server-2008,c#-4.0,Sql,Asp.net,Sql Server 2008,C# 4.0,我创建了一个在线考试系统。一次只使用一个用户就可以正常工作。但是,当多个用户登录时会出现问题 每次考试有20道题。如果只有一个用户在做测试,它就可以正常工作。用户可以完成所有20个问题。现在,另一个用户同时登录。该用户没有得到全部20个问题。假设User1已经完成了12个问题。用户2只会得到8个问题 假设有User1、User2、User3同时登录。用户1问了8个问题,用户2问了6个问题,用户3也问了8个问题。他们都会在没有完成20个问题的情况下到达结果页面。这意味着如果有20个用户,他们只会得
try
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["hasexaminationConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand();
SqlDataReader dr;
cmd.Connection = con;
cmd.CommandText = "select * from tblregister where Name=@Name and EMail=@EMail";
cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = TxtStName.Text;
cmd.Parameters.Add("@EMail", SqlDbType.VarChar).Value = TxtStudentID.Text;
//cmd.Parameters.Add("@Flag", SqlDbType.Int).Value = Convert.ToInt32(HiddenField1.Value);
con.Open();
dr = cmd.ExecuteReader();
if (dr.Read())
{
FormsAuthentication.RedirectFromLoginPage(TxtStName.Text, false);
Session["Name"] = TxtStName.Text;
Session["EMail"] = TxtStudentID.Text;
Response.Redirect("TestHome.aspx");
}
else
{
Label1.Visible = true;
Label1.Text = "UserName or Password is Required/Incorrect.";
}
}
catch
{ }
}
下一页:
protected void Page_Load(object sender, EventArgs e)
{
mob = HttpContext.Current.Session["Name"].ToString();
number = HttpContext.Current.Session["EMail"].ToString();
//Response.Cache.SetCacheability(HttpCacheability.NoCache);
if (Session["mob"] == null & Session["number"] == null)
//Response.Redirect("Home.aspx");
if (!IsPostBack)
{
DataSet TestList = getTestList("GetTestList");
DataList1.DataSource = TestList;
DataList1.DataBind();
}
}
public DataSet getTestList(string procedurename)
{
using (DataSet QuestionSet = new DataSet())
{
using (DataTable QTable = new DataTable())
{
QTable.Columns.Add("TESTNAME");
QTable.Columns.Add("TESTNUMBER");
DataTable dt;
cmd.Connection = con;
cmd.CommandText = "select * from testnumber";
using (Da = new SqlDataAdapter(cmd))
{
con.Open();
dt = new DataTable();
Da.Fill(dt);
if (dt.Rows.Count > 0)
{
DataRow dr;
for (int i = 0; i < dt.Rows.Count; i++)
{
dr = QTable.NewRow();
dr[0] = dt.Rows[i]["testname"].ToString();
dr[1] = dt.Rows[i]["testnumber"].ToString();
QTable.Rows.Add(dr);
}
}
}
QuestionSet.Tables.Add(QTable);
return QuestionSet;
}
}
}
protected void LinkButton_Click(object sender, CommandEventArgs e)
{
string name = e.CommandArgument.ToString();
Response.Redirect("TakeTest1.aspx?testno=" + e.CommandArgument.ToString());
}
下一步:
和结果页:
protected void Page_Load(object sender, EventArgs e)
{
l = Session["Name"].ToString();
m = Session["EMail"].ToString();
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["hasexaminationConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand("select tnumber,quation,ans1,ans2,ans3,ans4,ans from test left join testdisplay on (test.ans= testdisplay.answ and test.quation= testdisplay.quations) where UserName='" + Session["Name"] + "' and Password='" + Session["EMail"] + "'", con);
con.Open();
SqlDataAdapter adp = new SqlDataAdapter(cmd);
adp.Fill(dt);
con.Close();
{
int to = 20;
GridView1.DataSource = dt;
GridView1.DataBind();
int marks = GridView1.Rows.Count;
Label1.Text = Convert.ToInt32(GridView1.Rows.Count).ToString();
decimal total = Convert.ToDecimal((double)marks / (double)20) * 100;
lbltotal.Text = total.ToString();
}
}
public void bind()
{
// Write your code to get the summary of the result and display it
}
protected void Button1_Click(object sender, EventArgs e)
{
//Response.Redirect("Home.aspx");
string uniqueCode = string.Empty;
//SqlDataReader dr;
try
{
DataSet ds = new DataSet();
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["hasexaminationConnectionString"].ConnectionString))
{
con.Open();
SqlCommand cmd = new SqlCommand("SELECT Name,EMail FROM tblregister Where EMail= '" + txtEmail.Text.Trim() + "'", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
////}
if (Page.IsValid)
{
//GridView1.RenderControl(hw);
const string SERVER = "relay-hosting.secureserver.net";
MailMessage oMail = new MailMessage();
oMail.From = new MailAddress("contact@dssgroups.com");
oMail.To.Add(new MailAddress(txtEmail.Text.Trim()));
oMail.Subject = "Your Test Details";
oMail.IsBodyHtml = true; // enumeration
oMail.Priority = MailPriority.High; // enumeration
oMail.Body = "Hi, <br/><b>Please check your Test Details:</b><br/><br/>Your Marks Percentage: " + lbltotal.Text+" % "+"<br/>For any query contact "+" http://dssgroups.com";
SmtpClient sC = new SmtpClient(SERVER);
sC.EnableSsl = false;
ContentType contentType = new ContentType();
contentType.MediaType = MediaTypeNames.Application.Octet;
contentType.Name = "xml.xml";
sC.Send(oMail);
oMail = null; // free up resources
lblMessage.ForeColor = System.Drawing.Color.DarkKhaki;
lblMessage.Text = "EMail Sent";
ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('EMail Sent');", true);
}
else
{
lblMessage.Text = "The Email you entered not exists.";
}
}
//}
}
catch (Exception ex)
{
Console.WriteLine("{0} Exception caught.", ex);
}
}
protected void Button2_Click(object sender, EventArgs e)
{
Session.Clear();
Session.Abandon();
Response.Redirect("default.aspx");
}
欢迎使用stack overflow,请不要将您的全部代码放在这里。首先确定您的问题出在哪里,然后仅将这部分代码放在这里,以获取其他人的意图。好的,我不会将我的全部代码放在这里。我使用了调试器,它正在服务器上运行,但问题是相同的。。。。米奇·惠特你有静电的东西吗?所有用户都共享这些字段。先生,这就是为什么我问这个问题,以便我可以完成共享。。。。
protected void Page_Load(object sender, EventArgs e)
{
l = Session["Name"].ToString();
m = Session["EMail"].ToString();
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["hasexaminationConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand("select tnumber,quation,ans1,ans2,ans3,ans4,ans from test left join testdisplay on (test.ans= testdisplay.answ and test.quation= testdisplay.quations) where UserName='" + Session["Name"] + "' and Password='" + Session["EMail"] + "'", con);
con.Open();
SqlDataAdapter adp = new SqlDataAdapter(cmd);
adp.Fill(dt);
con.Close();
{
int to = 20;
GridView1.DataSource = dt;
GridView1.DataBind();
int marks = GridView1.Rows.Count;
Label1.Text = Convert.ToInt32(GridView1.Rows.Count).ToString();
decimal total = Convert.ToDecimal((double)marks / (double)20) * 100;
lbltotal.Text = total.ToString();
}
}
public void bind()
{
// Write your code to get the summary of the result and display it
}
protected void Button1_Click(object sender, EventArgs e)
{
//Response.Redirect("Home.aspx");
string uniqueCode = string.Empty;
//SqlDataReader dr;
try
{
DataSet ds = new DataSet();
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["hasexaminationConnectionString"].ConnectionString))
{
con.Open();
SqlCommand cmd = new SqlCommand("SELECT Name,EMail FROM tblregister Where EMail= '" + txtEmail.Text.Trim() + "'", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
////}
if (Page.IsValid)
{
//GridView1.RenderControl(hw);
const string SERVER = "relay-hosting.secureserver.net";
MailMessage oMail = new MailMessage();
oMail.From = new MailAddress("contact@dssgroups.com");
oMail.To.Add(new MailAddress(txtEmail.Text.Trim()));
oMail.Subject = "Your Test Details";
oMail.IsBodyHtml = true; // enumeration
oMail.Priority = MailPriority.High; // enumeration
oMail.Body = "Hi, <br/><b>Please check your Test Details:</b><br/><br/>Your Marks Percentage: " + lbltotal.Text+" % "+"<br/>For any query contact "+" http://dssgroups.com";
SmtpClient sC = new SmtpClient(SERVER);
sC.EnableSsl = false;
ContentType contentType = new ContentType();
contentType.MediaType = MediaTypeNames.Application.Octet;
contentType.Name = "xml.xml";
sC.Send(oMail);
oMail = null; // free up resources
lblMessage.ForeColor = System.Drawing.Color.DarkKhaki;
lblMessage.Text = "EMail Sent";
ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('EMail Sent');", true);
}
else
{
lblMessage.Text = "The Email you entered not exists.";
}
}
//}
}
catch (Exception ex)
{
Console.WriteLine("{0} Exception caught.", ex);
}
}
protected void Button2_Click(object sender, EventArgs e)
{
Session.Clear();
Session.Abandon();
Response.Redirect("default.aspx");
}