private void FrmSysLogin_Load(object sender, EventArgs e)
{
conStr = @"Data Source=2011-20131004OT;Initial Catalog=Bank;Integrated Security=true";
}
private void btnLogin_Click(object sender, EventArgs e)
{
SqlConnection connection = new SqlConnection(conStr);
SqlCommand cmd = new SqlCommand();
connection .Open ( );
cmd .CommandText = " SELECT*FROM Bank WHERE cardID@='6301'&&<='6310' AND pwd=='888888'";
SqlParameter paraID = new SqlParameter();
paraID.ParameterName = "cardID";
paraID.DbType = System.Data.DbType.String;
paraID.SqlDbType = System.Data.SqlDbType.Char;
paraID.Direction = System.Data.ParameterDirection.InputOutput;
paraID.IsNullable = true;
paraID.Value = "10000";
cmd.Parameters.Add(paraID);
SqlParameter paraPWD = new SqlParameter();
paraPWD.ParameterName = "pwd";
paraPWD.DbType = System.Data.DbType.String;
paraPWD.SqlDbType = System.Data.SqlDbType.Char;
paraPWD.Direction = System.Data.ParameterDirection.InputOutput;
paraPWD.IsNullable = true;
paraPWD.Value = "888888";
cmd.Parameters.Add(paraPWD);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
;
MessageBox.Show("登录成功!");
}
else
{
MessageBox.Show("登录失败!");
}
connection.Close();
SqlDataReader reader = cmd.ExecuteReader();
就是上面这条语句老是说CONNECTION没有被初始化。。。。怎么办
快来人哇~~~~求打救
SqlDataReader reader = cmd.ExecuteReader();
就是上面这条语句老是说CONNECTION没有被初始化。。。。怎么办
快来人哇~~~~求打救
SqlCommand cmd = conn.CreateCommand();
或者
SqlCommand cmd = new SQLCommand(sql语句,conn);
代码很多错误,sql也不对,sql中哪里能用&&运算符呢?你几乎一窍不通。
cmd .CommandText = " SELECT*FROM Bank WHERE cardID@='6301'&&<='6310' AND pwd=='888888'";
改为
cmd .CommandText = " SELECT*FROM Bank WHERE cardID>='6301' and cardID <='6310' AND pwd='888888'";
既可。。
先在方法外对connection置空值,然后在在方法里new
这种写法真心没见过。或许你可以试试这个
private const string conn = "Data Source=服务器名; Initial Catalog=数据库名; User id=用户名; Pwd=密码";
private SqlConnection connection;
private SqlCommand command;
private SqlDataReader reader;
/**
*打开连接
*/
private void getCon()
{
try
{
connection = new SqlConnection(conn);
connection.Open();
}
catch (Exception)
{
throw;
}
}
/**
*关闭连接
*/
private void closeCon()
{
if (reader != null)
{
reader.Close();
}
if (connection != null)
{
connection.Close();
}
}
/**
*增删改方法分装
*/
public int IDU(string sql,SqlParameter [] para)
{
this.OpenCon();
command = new SqlCommand(sql, this.connection);
command.Parameters.AddRange(para);
int flg = command.ExecuteNonQuery();
this.CloseCon();
return flg;
}
/**
*聚合函数方法封装,常用于登录验证
*/
public int doLogin(string sql,SqlParameter [] para)
{
this.OpenCon();
command = new SqlCommand(sql, this.connection);
command.Parameters.AddRange(para);
int flg = (int)command.ExecuteScalar();
this.CloseCon();
return flg;
}
/**
*查询方法
*/
public SqlDataReader GetRead(string sql,SqlParameter [] para)
{
this.OpenCon();
command = new SqlCommand(sql, this.connection);
command.Parameters.AddRange(para);
reader = command.ExecuteReader();
return reader;
}
以上是VS常用的方法封装,
如下是调用
*查询 数据并绑定到ListViewItem上
*/
string sql = "select * from Admin";
SqlParameter [] para={};
SqlDataReader reader = this.GetRead(sql,para);
while(reader.Read()){
string no = reader["LoginId"].ToString();
string pwd = reader["LoginPwd"].ToString();
ListViewItem lvi = new ListViewItem();
lvi = new ListViewItem(no);
lvi.SubItems.Add(pwd);
this.listView1.Items.Add(lvi);
}
/**
*登录验证
*/
string sql="select count(*) from userinfo where userPass=@userPass and userName=@userName";
SqlParameter[] para =
{
new SqlParameter("@userPass","123"),
new SqlParameter("@userName","张三")
};
int flg=this.doLogin(sql,para);
//flg>0有该用户,flg<=0无该用户
/**
*新增,修改,删除,此处只举例新增
*/
string sql="insert into userinfo values(@userName,@userPass)";
SqlParameter[] para =
{
new SqlParameter("@userName","张三"),
new SqlParameter("@userPass","123")
};
int flg=this.IDU(sql,para);
//flg>0 新增成功 flg<0新增失败
或许你可以研究研究
这种写法真心没见过。或许你可以试试这个
private const string conn = "Data Source=服务器名; Initial Catalog=数据库名; User id=用户名; Pwd=密码";
private SqlConnection connection;
private SqlCommand command;
private SqlDataReader reader;
/**
*打开连接
*/
private void getCon()
{
try
{
connection = new SqlConnection(conn);
connection.Open();
}
catch (Exception)
{
throw;
}
}
/**
*关闭连接
*/
private void closeCon()
{
if (reader != null)
{
reader.Close();
}
if (connection != null)
{
connection.Close();
}
}
/**
*增删改方法分装
*/
public int IDU(string sql,SqlParameter [] para)
{
this.OpenCon();
command = new SqlCommand(sql, this.connection);
command.Parameters.AddRange(para);
int flg = command.ExecuteNonQuery();
this.CloseCon();
return flg;
}
/**
*聚合函数方法封装,常用于登录验证
*/
public int doLogin(string sql,SqlParameter [] para)
{
this.OpenCon();
command = new SqlCommand(sql, this.connection);
command.Parameters.AddRange(para);
int flg = (int)command.ExecuteScalar();
this.CloseCon();
return flg;
}
/**
*查询方法
*/
public SqlDataReader GetRead(string sql,SqlParameter [] para)
{
this.OpenCon();
command = new SqlCommand(sql, this.connection);
command.Parameters.AddRange(para);
reader = command.ExecuteReader();
return reader;
}
以上是VS常用的方法封装,
如下是调用
*查询 数据并绑定到ListViewItem上
*/
string sql = "select * from Admin";
SqlParameter [] para={};
SqlDataReader reader = this.GetRead(sql,para);
while(reader.Read()){
string no = reader["LoginId"].ToString();
string pwd = reader["LoginPwd"].ToString();
ListViewItem lvi = new ListViewItem();
lvi = new ListViewItem(no);
lvi.SubItems.Add(pwd);
this.listView1.Items.Add(lvi);
}
/**
*登录验证
*/
string sql="select count(*) from userinfo where userPass=@userPass and userName=@userName";
SqlParameter[] para =
{
new SqlParameter("@userPass","123"),
new SqlParameter("@userName","张三")
};
int flg=this.doLogin(sql,para);
//flg>0有该用户,flg<=0无该用户
/**
*新增,修改,删除,此处只举例新增
*/
string sql="insert into userinfo values(@userName,@userPass)";
SqlParameter[] para =
{
new SqlParameter("@userName","张三"),
new SqlParameter("@userPass","123")
};
int flg=this.IDU(sql,para);
//flg>0 新增成功 flg<0新增失败
或许你可以研究研究