ADO.NET基础

首先创建连接数据库的文件夹
后缀为udl

  • ADO.NET类集合主要由五大核心组件类组成:
    Connection(数据库连接)
    Command(数据库的命令)
    DataReader(数据库的读取器)
    DataSet(数据集)
    DataAdaper(数据库的适配器)
对象说明
Connection用于提供与数据库的连接功能
Command返回数据、运行存储过程及发送或检索参数信息的数据库命令
DataReader通过Command从数据库检索信息的功能。一中数据库读取方式
DataSet是一个数据库容器,可以看作是内存中的数据库
DataAdapter与连接DataSet对象和数据源连接的桥梁,DataAdapter对象使用Command对象在数据源中执行SQL命令,可以将数据加载到DataSet中,以确保DataSet中数据的更新与数据源保持一致。
  • 先链接数据库,再把数据库里面的数据显示在dataGridView1
    先导入两个using
using System.Data.SqlClient;

先定义数据库地址

 public string conser = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=aa;Data Source=DESKTOP-0HQ3J93";

1.绑定数据库,显示数据//写在主界面上

string sql = "select * from aa";   //定义一个存储的表
SqlConnection con = new SqlConnection(conser);//链接数据库
con.Open();//打开数据库
SqlDataAdapter dt = new SqlDataAdapter(sql,con);//用适配器存储数据=
DataSet ds = new DataSet();  //数据库内存
dt.Fill(ds);//把dt所有内容填充到ds里面
dataGridView1.DataSource = ds.Tables[0];//dataGridView1添加ds里面的数据
con.Close();//关闭数据库

2.添加数据

string sql = "insert into aa (姓名,性别,年龄)values('"+ textBox1.Text+"','" +textBox2.Text + "','" +textBox3.Text +"')";
SqlConnection con = new SqlConnection(conser);//链接数据库
con.Open();
SqlCommand cmd = new SqlCommand(sql,con);//只显示这一行,修改命令,一定需要对数据库进行修改
int i=cmd.ExecuteNonQuery();//检查有没有修改成功,必须要写,不写添加不成功
if(i>0){
	MessageBox.Show("添加成功");
	Form1_Load(null,null);//界面刷新;
}

3.数据库修改

string sql = "update aa set 姓名='" + textBox1.Text + "',性别='" + textBox2.Text + "',年龄='" + textBox3.Text + "'where 姓名='" + textBox1.Text + "'";
SqlConnection con = new SqlConnection(conser);
con.Open();
SqlCommand cmd = new SqlCommand(sql,con);
cmd.ExecuteNonQuery();
Form1_Load(null,null);

4.数据库删除

string sql = "delete from aa where 姓名='"+textBox1.Text+"'";
SqlConnection con = new SqlConnection(conser);//链接数据库
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);//只显示这一行
int i = cmd.ExecuteNonQuery();//检查有没有修改成功,必须要写,不写添加不成功
if (i > 0)
{
	MessageBox.Show("修改成功");
	Form1_Load(null, null);//界面刷新;
}

5.数据库查询

string sql = "select * from aa where 姓名='" + textBox1.Text + "'";
SqlConnection con = new SqlConnection(conser);//链接数据库
con.Open();
SqlDataAdapter dt = new SqlDataAdapter(sql,con);//不用对数据库进行修改
DataSet ds = new DataSet();  //数据库内存
dt.Fill(ds);//把dt所有内容填充到ds里面
dataGridView1.DataSource = ds.Tables[0];//

查询两个数据即以上的用or链接,删除等也可以

 string sql = "select * from aa where 姓名='" + textBox1.Text.Trim() + "'or 性别='" + textBox2.Text.Trim() + "'";

查询下拉列表comboBox的获取选择

switch(comboBox1.Text){
	case "姓名" :
		/*代码执行块*/
		break;

6.点击点击dataGridView1里面的数据会出现的编辑框里面

textBox1.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
textBox2.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
textBox3.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();
  • SqlCommand与SqlDataAdapter的用法区别
    SqlCommand用于需要修改数据库里面的数据的
    SqlDataAdapter用于不需要修改数据库里面的数据的

7.同时将输入导入到两个表格里面

SqlConnection con = null;
SqlTransaction stre = null;//创建事物对象
try
{
	con = new SqlConnection(conser);
	con.Open();
	string sql1 = "insert into stu1(name,pw)values('"+textBox1.Text+"','"+textBox2.Text+"')";
	string sql2 = "insert into stu2(name,pw)values('" + textBox1.Text + "','" + textBox2.Text + "')";
	stre = con.BeginTransaction();//启动事物
	SqlCommand cmd = new SqlCommand();
	cmd.Transaction = stre;//将sql命令执行到事物
	cmd.Connection = con;
	cmd.CommandText = sql1;
	cmd.ExecuteNonQuery();
	cmd.CommandText = sql2;
	cmd.ExecuteNonQuery();
	stre.Commit();//将多个sql命令当成一个事物整体提交
	}
catch
{
	if(stre !=null){
		stre.Rollback();//事物不是一致的,将回滚
	}
}
finally
{ 
	if(con!=null){
		con.Close();
	}
}

8.登录判断功能

 string sql = "select * from zhuce where zh='"+textBox1.Text+"' and pw1='"+textBox2.Text+"'";//查询账号密码
            SqlConnection con = new SqlConnection(conser);
            SqlCommand cmd = new SqlCommand(sql,con);
            con.Open();
            SqlDataReader dt = cmd.ExecuteReader();//快速读取数据,只能读,不能写
            dt.Read();//读取数据     dt[i]即是他表格存储的第几个数据
            string ty=dt["types"].ToString().Trim();//因为sql查询了表格所有内容,所以用dt去查找表格中types的内容,转换为string类型,用来得到里面的数据。
            if (dt.HasRows)//表示的是从数据库读出来的数据集dataReader中是否存在数据
            {
            }
  • 封装(二层架构)
    在UI界面定义一个类直接调用
 class Class1
    {
        public static string constr= "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=aa;Data Source=DESKTOP-0HQ3J93";
        SqlCommand cmd = null;
        SqlConnection con = null;
        public SqlConnection GetCon()//链接数据库
        {
            con = new SqlConnection(constr);
            return con;
        }
        public int GetByNonQuery(string sql)//增删改
        {
            con = GetCon();
            con.Open();
            cmd = new SqlCommand(sql, con);
            int i = cmd.ExecuteNonQuery();
            con.Close();
            return i;
        }
        public DataTable GetByTable(string sql)//显示到dataGridView
        {
            con = GetCon();
            SqlDataAdapter sda = new SqlDataAdapter(sql, con);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            return ds.Tables[0];
        }
        public SqlDataReader GetByRead(string sql)//判断是否有无此数据,即登录功能
        {
            con = GetCon();
            con.Open();
            cmd = new SqlCommand(sql, con);
            SqlDataReader i = cmd.ExecuteReader();
            return i;
            con.Close();
        }
        public int GetByScalar(string sql)
        {
            con = GetCon();
            con.Open();
            cmd = new SqlCommand(sql, con);
            int i = Convert.ToInt32(cmd.ExecuteScalar());
            con.Close();
            return i;
        }
    }

调用

//调用显示
 dataGridView1.DataSource = c.GetByTable("select * from aa");
 //调用增加
 c.GetByNonQuery("insert into aa(姓名,性别,年龄)values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "')");
            Form1_Load(null,null);

用一个类共享不同界面的数据
在这里插入图片描述
在这里插入图片描述
修改菜单栏是否可被点击
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ADO.NET中常用的对象包括: 1. Connection(连接对象):表示与数据库的连接,用于建立和管理与数据库的连接。它提供了与数据库交互的基础功能,如打开连接、关闭连接等。 2. Command(命令对象):表示要在数据库上执行的命令,如SQL语句或存储过程。它可以执行查询、插入、更新、删除等操作,并提供了执行命令和获取结果的方法。 3. DataReader(数据读取器):提供了一种快速、只读的数据访问方式,用于逐行读取数据结果集。它以只进只读的方式访问数据库,适用于大量数据的情况,不需要将整个结果集加载到内存中。 4. DataSet(数据集):是一个内存中的数据缓存,可以包含多个数据表、关系和约束。它可以从数据库中填充数据,也可以将修改后的数据提交回数据库,提供了对数据的缓存、操作和管理。 5. DataAdapter(数据适配器):用于在DataSet和数据源之间进行数据的填充和更新。它可以从数据源中检索数据并将其填充到DataSet中,也可以将DataSet中的数据更新到数据源中。 6. DataTable(数据表):表示内存中的一个表格,包含多个行和列。它是DataSet中的一个成员,用于存储和操作数据。 7. DataCommandBuilder(命令生成器):用于自动生成针对单个表的Insert、Update和Delete命令,简化了更新DataSet中数据到数据源的操作。 这些对象提供了一系列方法和属性,用于与数据库进行交互、执行命令、读取数据和更新数据等操作,帮助开发人员在.NET平台上进行数据库访问和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值