我将验证函数(UserValiData)放在一个公共类(PubCalss)中.然后在主窗口中调用。公共类及验证函数如下:using System;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;namespace PackList
{
/// <summary>
/// PubClass 的摘要说明。
/// </summary>
///
public class PubClass
{
protected static string strconn;
public SqlConnection sqlconn=null;
public PubClass()
{
//
// TODO: 在此处添加构造函数逻辑
//
//strconn="Initial Catalog=nhsoft;data source=localhost;Security=SSPI";
sqlconn = null;
} ~PubClass()
{
} //数据库是否打开
public void SetConnectionString(string sqlstring)
{
strconn=sqlstring;
sqlconn=null;
sqlconn= new SqlConnection(strconn);
} public void openconn()
{
if(sqlconn.State==ConnectionState.Open)
{
sqlconn.Close();
}
sqlconn.Open();
} //验证用户的函数
public bool UserValidate(string UserName,string password)
{
string sqluser="select count(*) from User where name='"+UserName+"' and pwd='"+password+"'"; SetConnectionString(strconn);
openconn();
SqlCommand cmd=new SqlCommand(sqluser,sqlconn);
SqlDataReader dr;
dr=cmd.ExecuteReader(); //报错处。
cmd.Dispose(); //消毁。
if(dr.Read())
{
return false;
}
else
{
return true;
} }
}}窗体调用过程如下:
private void btnOK_Click(object sender, System.EventArgs e)
{
PubClass pc=new PubClass();
if(pc.UserValidate(this.tbUser.Text,this.tbPassWord.Text))
{
this.DialogResult=DialogResult.OK;
}
else
{
this.DialogResult=DialogResult.None;
}}
老是执行到dr=cmd.ExecuteReader();这一处时报系统错误。
我用object o=cmd.ExecuteScale();也报同样的错误。已搞烦了我两天了,希望高人指点。(vs.2003)
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;namespace PackList
{
/// <summary>
/// PubClass 的摘要说明。
/// </summary>
///
public class PubClass
{
protected static string strconn;
public SqlConnection sqlconn=null;
public PubClass()
{
//
// TODO: 在此处添加构造函数逻辑
//
//strconn="Initial Catalog=nhsoft;data source=localhost;Security=SSPI";
sqlconn = null;
} ~PubClass()
{
} //数据库是否打开
public void SetConnectionString(string sqlstring)
{
strconn=sqlstring;
sqlconn=null;
sqlconn= new SqlConnection(strconn);
} public void openconn()
{
if(sqlconn.State==ConnectionState.Open)
{
sqlconn.Close();
}
sqlconn.Open();
} //验证用户的函数
public bool UserValidate(string UserName,string password)
{
string sqluser="select count(*) from User where name='"+UserName+"' and pwd='"+password+"'"; SetConnectionString(strconn);
openconn();
SqlCommand cmd=new SqlCommand(sqluser,sqlconn);
SqlDataReader dr;
dr=cmd.ExecuteReader(); //报错处。
cmd.Dispose(); //消毁。
if(dr.Read())
{
return false;
}
else
{
return true;
} }
}}窗体调用过程如下:
private void btnOK_Click(object sender, System.EventArgs e)
{
PubClass pc=new PubClass();
if(pc.UserValidate(this.tbUser.Text,this.tbPassWord.Text))
{
this.DialogResult=DialogResult.OK;
}
else
{
this.DialogResult=DialogResult.None;
}}
老是执行到dr=cmd.ExecuteReader();这一处时报系统错误。
我用object o=cmd.ExecuteScale();也报同样的错误。已搞烦了我两天了,希望高人指点。(vs.2003)
string sqluser="select count(*) from User where name='"+UserName.Repalce("'","''")+"' and pwd='"+password.Replace("'","''")+"'";
没有通过啊。
然后换成cmd.ExecuteScal();还是报同样的错误。
id name chnname pwd
1 lhc 落花 lhc啊。
非常感谢!