1.连接数据库,首先我们要知道你要连那一台计算机(sql server服务器名 )上面的什么数据库 (数据库名)
so 我们需要一个连接字符串
(指定连接到那台计算机上面的那个数据库)
2.创建连接实例 这个时候我们需要传入连接字符串 然后就创建了一个连接到你指定数据库的连接实例
(ps:为什么要连接实例?请问类不实例化你能使用他的方法吗?静态类除外)
3.传入sql 语句和参数完成增删改查
(参数是什么 就是方法的参数,使用参数可以有效避免sql注入攻击)
4.返回查询到的结果,或着进行的操作受影响的行数
(ps :比如我登陆,按照用户名查密码,查到了用户名之后返回对应的密码 这个对应密码就是返回的结果 受影响的行数是什么 你在sql 里面写 insert update delete 的时候sql会提示你几行受影响)
首先我们封装一个SqlHelper类来用来帮助我们进行增删改查、
添加类:SqlHelper
添加命名空间:
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
代码如下:
public class SqlHelper
{
private static string connString = ConfigurationManager.ConnectionStrings[“connectionString”].ConnectionString;//创建连接字符串
///执行sql 语句 返回受影响的行数
public static int ExecuteNonQuery(string sql, params SqlParameter[] parameters)
{
using (SqlConnection connection = new SqlConnection(connString))//创建连接实例(传入连接字符串)
{
SqlCommand command = new SqlCommand(sql, connection);//创建连接命令(传入sql语句和连接实例)
command.Parameters.AddRange(parameters); //添加参数
connection.Open();//打开连接
return command.ExecuteNonQuery();//返回受影响的行数
}
}
///返回查询到的结果
public static DataTable GetDataTable(string sql, params SqlParameter[] parameters)
{
using (SqlConnection connection = new SqlConnection(connString))
{
SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
DataTable dataTable = new DataTable();
adapter.SelectCommand.Parameters.AddRange(parameters);
adapter.Fill(dataTable);
return dataTable;
}
}
///这个和第一个差不多 只不过返回的是查询到的第一行第一例
public static object executeScalar(string sql, params SqlParameter[] parameters)
{
using (SqlConnection connection = new SqlConnection(connString))
{
SqlCommand command = new SqlCommand(sql, connection);
command.Parameters.AddRange(parameters);
connection.Open();
return command.ExecuteScalar();
}
}
}
这个时候 我们需要在web.config 连接字符串指定服务器和数据库
< connectionStrings >
< add name=“connectionString” connectionString=“Data Source=22222P-3LE77N0;Initial Catalog=Eshop;Integrated Security=True”/>
< /connectionStrings>
Data Source=服务器名
Initial Catalog=数据库名
给button1注册点击事件
protected void Button1_Click(object sender, EventArgs e)
{
//
string user= TextBox1.Text.Trim();
string pwd = TextBox2.Text.Trim();
//
string sql = "select * from User_info where loginName=@loginname "; //查询User_info中所有用户名为 textbox1中的所有信息
// SqlParameter parameter=new SqlParameter(“loginname”, user);
// DataTable dataTable = SqlHelper.GetDataTable(sql, parameter);
// string seletpwd = null;
// try//防止查询到数据库当中没有的用户名报错
// {
// seletpwd = dataTable.Rows[0][2].ToString(); //我这里的密码是放在了
第三个位置 索引从0开始的 根据你密码位置来
// }
// catch
// {
// Response.Write(“用户名错误”);
// }
// if (pwd == seletpwd)
// {
// Response.Write(“登陆成功”);
// }
// else
// {
// Response.Write(“密码错误”);
// }
// }
当然我这个测试写的很low
比如数据库有一个用户名一样但是密码不一样的只能查询到第一个
seletpwd = dataTable.Rows[0][2].ToString();//这句只返回了第一个的密码
学会了慢慢去改
插入 插入代码 update delete 也是基本一样
// protected void Button1_Click(object sender, EventArgs e)
{
string sql = “insert into User_info (loginName,loginPwd) values(’” + TextBox1.Text + “’,’” + TextBox2.Text + “’)”;
// if (SqlHelper.ExecuteNonQuery(sql) > 0)
// {
// Response.Write(“”);
}
}