在上边的代码中我改用的是SqlClient没有用OleDbClient的类也不行,关键是请解释一下下边的代码,下边的代码就算我输入的账号是对的也不可以通过验证,
string myconn="server=abc;uid=sa;pwd=sa;database=zxbm";
string strcmd="select count(*) from account where (user like'"+TextBox1.Text+"'and pwd like'"+TextBox2.Text+"')";
            SqlConnection MyConn=new SqlConnection (myconn);
SqlCommand  odb=new SqlCommand(strcmd,MyConn);
odb.Connection .Open ();
//SqlDataReader olerd=odb.ExecuteScalar ();
int flag=(int)odb.ExecuteScalar ();
if (flag>0 )
{
Session["user"]=TextBox1.Text ;
Response.Redirect ("zxbm1.aspx");
}
else
{
Label2.Text ="sorry,user is not exist!";
TextBox1.Text ="";
TextBox2.Text ="";
}
MyConn.Close ();

解决方案 »

  1.   

    sql server改成windows+sql认证,而不是仅仅windows认证
      

  2.   

    1。首先确定用户名和密码是正确的
    2。确定sql server 采用的是 windows + sql 认证方式 象楼上兄弟说的那样
    3。确定错误是在那里产生的 
       是odb.Connection .Open (); 产生的呢 
       还是int flag=(int)odb.ExecuteScalar (); 产生的
    ---
    SqlCommand.ExecuteScalar执行查询,并返回查询所返回的结果集中第一行的第一列。忽略额外的列或行
      

  3.   

    string myconn="Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath("..\\zxbm\\database\\zxbm.mdb");
     这句是Access调用的连接字符串,不是SqlServer调用的,换一下就行了
      

  4.   

    sql server 采用的是 windows + sql
      

  5.   

    sql server 采用的是 windows + sql也不行, 并且数据库可以进行删除,插入,更新等操作,就是不可以用以上方法验证. 再请高人指点.