当前位置:Gxlcms > 数据库问题 > 通过SqlHelper实现登录

通过SqlHelper实现登录

时间:2021-07-01 10:21:17 帮助过:3人阅读

建立解决方案:.

首先创建windows窗体应用程序,然后拖出登录界面

2. 写配置文件App.config:

????<configuration>

????????<connectionStrings>

????????<add name="mssqlserver" connectionString="Data Source=.;Initial Catalog=test;User ID=sa;Password=1q2w3e4R"/>

????????</connectionStrings>

</configuration>

其中的name可以随意去写,没有任何限制。连接字符串中的【Data Source=.】为服务器名称,【Initial Catalog-test】为表名,后面的为用户名和密码。

3. SqlHelper代码:

????3.1 读取配置文件:

????????·首先要添加引用:System.Configuration

????????·然后读取连接字符串:

????????????private static readonly string connStr = ConfigurationManager.ConnectionStrings["mssqlserver"].ConnectionString;

????3.2 封装常用的方法

????????·执行insert/delete/update的方法

????????????public static int ExecuteNonQuery(string sql, CommandType cmdType, params SqlParameter[] pms)

????????{

//创建连接对象

????using (SqlConnection con = new SqlConnection(connStr))

????{

//创建命令对象

???? using (SqlCommand cmd = new SqlCommand(sql, con))

????{

//设置当前执行的是存储过程还是带参数的Sql语句

cmd.CommandType = cmdType;

//断是否传递参数 注意:如果传递的不是数组类型,那么不去判空也不会报错,但是如果是数组类型,那么就会报错。所以为了保险起见,应该进行判空。

if (pms != null)

{

cmd.Parameters.AddRange(pms);

}

con.Open();

return cmd.ExecuteNonQuery();

????}

????}

????????}

????????·执行返回单个值的方法

????????????public static object ExecuteScalar(string sql, CommandType cmdType, params SqlParameter[] pms)

????????{

????using (SqlConnection con = new SqlConnection(connStr))

????{

????using (SqlCommand cmd = new SqlCommand(sql, con))

????{

cmd.CommandType = cmdType;

if (pms != null)

{

cmd.Parameters.AddRange(pms);

}

con.Open();

return cmd.ExecuteScalar();

????}

????}

????????}

????????·返回SqlDataReader的方法

????????????public static SqlDataReader ExecuteReader(string sql, CommandType cmdType, params SqlParameter[] pms)

????????{

????SqlConnection con=new SqlConnection(connStr);

????using (SqlCommand cmd = new SqlCommand(sql, con))

????{

????cmd.CommandType = cmdType;

????if (pms != null)

????{

cmd.Parameters.AddRange(pms);

????}

????try

????{

con.Open();

return cmd.ExecuteReader(CommandBehavior.CloseConnection);

????}

????catch

????{

con.Close();

con.Dispose();

throw;

????}

????}

????????}

????????·执行返回DataTable方法

????????????public static DataTable ExecuteDataTable(string sql, CommandType cmdType, params SqlParameter[] pms)

????????{

????DataTable dt=new DataTable();

????using (SqlDataAdapter adapter = new SqlDataAdapter(sql, connStr))

????{

adapter.SelectCommand.CommandType = cmdType;

if (pms != null)

????{

adapter.SelectCommand.Parameters.AddRange(pms);

????}

adapter.Fill(dt);

return dt;

????}

????????}

4. 执行登录操作:

????????private void button1_Click(object sender, EventArgs e)

????{

string sql = "select COUNT(*) from users where loginId=@uid and loginPwd=@pwd";

SqlParameter[] pms=new SqlParameter[]

{

new SqlParameter("@uid",textBox1.Text.Trim()),

new SqlParameter("@pwd",textBox2.Text)

};

int n=(int) SqlHelper.ExecuteScalar(sql, CommandType.Text, pms);

if (n > 0)

{

MessageBox.Show("成功!");

}

else

{

MessageBox.Show("失败!");

}

????}

通过SqlHelper实现登录

标签:

人气教程排行