SqlHelper封装类测试

Posted bttree

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SqlHelper封装类测试相关的知识,希望对你有一定的参考价值。

SqlHelper封装类连接:https://www.cnblogs.com/Gzu_zb/p/10694207.html

1.执行增、删、改的方法:ExecuteNonQuery

public static int ExecuteNonQuery(string sql, params SqlParameter[] pms)
{
    using (SqlConnection con = new SqlConnection(connStr))
    {
        using (SqlCommand cmd = new SqlCommand(sql, con))
        {
            if (pms != null)
            {
                cmd.Parameters.AddRange(pms);
            }
            con.Open();
            try
            {
                return cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                return 0;//返回0表示操作失败
                         //throw;
            }
        }
    }
}
View Code

更新:

//更新
        int flag = SqlHelper.ExecuteNonQuery("UPDATE [dbo].[user] SET [password] = @password WHERE username=@username", new SqlParameter("@username", TextBox1.Text), new SqlParameter("@password", TextBox2.Text));
        if (flag != 0)
        {
            Response.Write("更新成功!");
        }
        else
        {
            Response.Write("更新失败!");
        }
View Code

插入:

//插入
        int flag = SqlHelper.ExecuteNonQuery("Insert into [dbo].[user] values (@username,@password)", new SqlParameter("@username", TextBox1.Text), new SqlParameter("@password", TextBox2.Text));
        if (flag != 0)
        {
            Response.Write("插入成功!");
        }
        else
        {
            Response.Write("插入失败!");
        }
View Code

删除:

//删除
        string sqlStrDel = "Delete from [dbo].[user] Where username=@username";
        int flag = SqlHelper.ExecuteNonQuery(sqlStrDel, new SqlParameter("@username", TextBox1.Text));
        if (flag != 0)
        {
            Response.Write("删除成功!");
        }
        else
        {
            Response.Write("删除失败!");
        }
View Code

 

2.执行查询多行多列的数据的方法:ExecuteReader

public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] pms)
{
    SqlConnection con = new SqlConnection(connStr);
    using (SqlCommand cmd = new SqlCommand(sql, con))
    {
        if (pms != null)
        {
            cmd.Parameters.AddRange(pms);
        }
        try
        {
            con.Open();
            return cmd.ExecuteReader(CommandBehavior.CloseConnection);
        }
        catch (Exception)
        {
            con.Close();
            con.Dispose();
            throw;
        }
    }
}
View Code

查询:

string sqlStr = "select * from [dbo].[user]";
        SqlDataReader reader = SqlHelper.ExecuteReader(sqlStr);
        while (reader.Read())
        {
            Response.Write(reader[0] + "\\t\\t\\t" + reader[1] + "<br />");
        }
View Code
string sqlStr = "select password from [user] where username=@username";
        SqlDataReader reader = SqlHelper.ExecuteReader(sqlStr, new SqlParameter("@username", TextBox1.Text));
        while (reader.Read())
        {
            Response.Write(reader[0]);
        }
View Code

登录验证:

string sqlStr = "select * from [dbo].[user] where username=@username and password=@password ";
        SqlDataReader reader = SqlHelper.ExecuteReader(sqlStr, new SqlParameter("@username", TextBox1.Text), new SqlParameter("@password", TextBox2.Text));
        if (reader.Read())
        {
            Label1.Text = "登录成功!";
        }
        else
        {
            Label1.Text = "用户名或密码错误!";
        }
View Code

 

3.封装一个执行返回单个对象的方法:ExecuteScalar()

public static object ExecuteScalar(string sql, params SqlParameter[] pms)
{
    using (SqlConnection con = new SqlConnection(connStr))
    {
        using (SqlCommand cmd = new SqlCommand(sql, con))
        {
            if (pms != null)
            {
                cmd.Parameters.AddRange(pms);
            }
            con.Open();
            return cmd.ExecuteScalar();
        }
    }
}
View Code

查询:

//查找
        string sqlStrSel = "Select password From [dbo].[user] Where username=@username";
        try
        {
            pwd = SqlHelper.ExecuteScalar(sqlStrSel, new SqlParameter("@username", TextBox1.Text)).ToString();
            Label1.Text = pwd;
        }
        catch (Exception)
        {
            Label1.Text = "您查询的用户不存在!";
            //throw;
        }
View Code

 

4.执行返回DataTable的方法

public static DataTable ExecuteDataTable(string sql, params SqlParameter[] pms)
{
    DataTable dt = new DataTable();
    using (SqlDataAdapter adapter = new SqlDataAdapter(sql, connStr))
    {
        if (pms != null)
        {
            adapter.SelectCommand.Parameters.AddRange(pms);
        }
        adapter.Fill(dt);
    }
    return dt;
}
View Code

查询:

        string sqlStr = "select * from [user]";
        DataTable dt = SqlHelper.ExecuteDataTable(sqlStr);

        Label1.Text += dt.Rows.Count.ToString() + "<br/>";//获取从数据库得到数据的行数

        //遍历输出内存表中的所有数据
        //方式一
        foreach (DataRow s in dt.Rows)
        {
            //Label1.Text += s[0].ToString() + " " + s[1].ToString() + "<br/>";
            Label1.Text += s["username"].ToString() + " " + s["password"].ToString() + "<br/>";//这种写法与上一行的写法效果一样
        }
        //方式二
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            //Label1.Text += dt.Rows[i][0] + " " + dt.Rows[i][1] + "<br/>";
            Label1.Text += dt.Rows[i]["username"] + " " + dt.Rows[i]["password"] + "<br/>";//这种写法与上一行的写法效果一样
        }
View Code

 登录验证:

string sqlStr = "select * from [user] where username=@username and password=@password";
        DataTable dt = SqlHelper.ExecuteDataTable(sqlStr,new SqlParameter("@username",TextBox1.Text),new SqlParameter("@password", TextBox2.Text));
        if (dt.Rows.Count == 1)
        {
            Label1.Text = "登录成功!";
        }
        else
        {
            Label1.Text = "用户名或密码错误!";
        }
View Code

 

附:

所用数据库截图如下

 

所用控件设置如下:

 

以上是关于SqlHelper封装类测试的主要内容,如果未能解决你的问题,请参考以下文章

封装sqlhelper

自用类库整理之SqlHelper和MySqlHelper

封装SQLHelper

微软原版SQLHelper类

自己封装jdbc工具类

SQLHelper助手