登录事件为什么不弹出警告对应框,后台采用的SQL sever2005有些看不懂.
执行语句的方法:
public SqlDataReader GetDataReader(string str_Sql)
{
Open();
SqlCommand cmd = new SqlCommand(str_Sql, conn);
SqlDataReader dr = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
return dr;
}
public object Get_object(string strsql)//获取一个object类型的数据
{
Open();
cmd = new SqlCommand(strsql, conn);
object o = cmd.ExecuteScalar();
conn.Close();
return o;
}
/// <summary>
/// 打开数据库
/// </summary>
public void Open()
{
conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ok"].ToString());
conn.Open();
}
在Web.config所配制的数据库(数据库采用的时SQL Server2005)连接语句:
<connectionStrings>
<add name="ok" connectionString="Data Source=.;User ID=sa;Password=sa525;persist security info=False;initial catalog=CustomersRecord;" providerName="System.Data.SqlClient" />
</connectionStrings>
-----------------------------------------
登录处理事件:
protected void LoginButton_Click(object sender, EventArgs e)
{
strsql = "select count(1) as Num from employee where Pernr='"+this.Login1.UserName.Trim()+"' and Password='"+this.Login1.Password.Trim()+"'";
try
{
SqlDataReader dr = cf.GetDataReader(strsql);
while (dr.Read())
{
if (Convert.ToInt32(dr["num"]) == 1)
{
strsql2 = "select distinct STAT2 from ZTA_HRDNET where pernr = '"+this.Login1.UserName.Trim()+"'"; ////验证用户是否在职
if (cf.Get_object(strsql2).ToString().Trim() == "3")
{
urkey = this.Login1.UserName.ToString();
Server.Transfer("Default.aspx?flag=1", true);///带参数flag来指定login传来值.
}
else
{
Response.Write("<script language = javascript>alert('用户账号已停用!');</script>");
}
}
else
Response.Write("<script language = javascript>alert('用户名或密码错误!');</script>");
}
}
catch (Exception ex)
{
Response.Write(ex.Message.ToString());
}
}
问题:
1当我用户名与密码都正确的时能正常登录.
2.当用户名与密码错误时为什么不能弹出"用户名或密码错误!"对话框?
3.当用户停用时,为什么不能弹出"用户账号已停用!"对话框?
弹出的错误为:
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)