广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >ADO.NET基础知识详解
  • 695
分享到

ADO.NET基础知识详解

2024-04-02 19:04:59 695人浏览 薄情痞子
摘要

ADO.net是微软提供的一种数据库访问技术。 ADO.NET为不同类型的数据源提供了不同的数据提供程序对象: 数据提供程序说明SQL Server 数据提供程序提供对Microso

ADO.net是微软提供的一种数据库访问技术。

ADO.NET为不同类型的数据源提供了不同的数据提供程序对象:

数据提供程序说明
SQL Server 数据提供程序提供对Microsoft sql Server中数据的访问,使用System.Data.SqlClient命名空间。
OLE 数据提供程序提供对使用OLE DB公开的数据源(如Access、excel等)中数据的访问,使用System.Data.oleDb命名空间。
ODBC 数据提供程序提供对使用ODBC公开的数据源中数据的访问,使用System.Data.Odbc命名空间。

数据提供程序中包含了ADO.NET的四个核心对象:

对象说明
Connection建立与特定数据源的连接
Command对数据源执行命令
DataReader从数据源中读取只进只读的数据流
DataAdapter使用数据源填充DataSet并支持更新

ADO.NET提供两种方式访问数据库:

连接式访问:整个操作过程中需要保持数据库连接。

断开式访问:只需要在执行数据库命令时保持数据库连接。

一、使用DataReader读取数据

使用DataReader读取数据属于连接式读取,只能只进的一行一行读取数据,并且不能改变数据,如需要改变数据,必须重新执行insert,update,delete等sql语句来改变数据。

示例:使用DataReader读取数据在ListView控件显示:

此示例的测试数据如下:

create table Member
(
	MemberId int primary key identity(1,1),
	MemberAccount nvarchar(20) unique check(len(MemberAccount) between 6 and 12),
	MemberPwd nvarchar(20),
	MemberName nvarchar(20),
	MemberPhone nvarchar(20)
)
insert into Member(MemberAccount,MemberPwd,MemberName,MemberPhone)
values('liubei','123456','刘备','4659874564')
insert into Member(MemberAccount,MemberPwd,MemberName,MemberPhone)
values('guanyu','123456','关羽','42354234124')
insert into Member(MemberAccount,MemberPwd,MemberName,MemberPhone)
values('zhangfei','123456','张飞','41253445')
insert into Member(MemberAccount,MemberPwd,MemberName,MemberPhone)
values('zhangyun','123456','赵云','75675676547')
insert into Member(MemberAccount,MemberPwd,MemberName,MemberPhone)
values('Machao','123456','马超','532523523')

此示例代码如下:

在编写代码之前需要进行ListView控件的编辑列操作,并且将视图模式切换成Details模式。

private void FORM1_Load(object sender, EventArgs e)
{
    //1-编写连接字符串windows方式连接)
    string connStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=.";
    //2-创建连接对象,打开数据库连接
    SqlConnection conn = new SqlConnection(connStr);
    conn.Open();
    //3-编写sql语句
    string sql = "select * from Member";
    //4-定义执行命令的对象执行命令
    SqlCommand cmd = new SqlCommand(sql, conn);

    //5-利用DataReader读取数据
    SqlDataReader rd = cmd.ExecuteReader();
    while (rd.Read())
    {
        ListViewItem item = new ListViewItem(rd["MemberId"].ToString());
        item.SubItems.Add(rd["MemberAccount"].ToString());
        item.SubItems.Add(rd["MemberPwd"].ToString());
        item.SubItems.Add(rd["MemberName"].ToString());
        item.SubItems.Add(rd["MemberPhone"].ToString());
        this.listView1.Items.Add(item);
    }
    rd.Close();
    //显示人数
    cmd.CommandText = "select count(*) from Member";
    int count = (int)cmd.ExecuteScalar();
    this.lblCount.Text = "会员人数:" + count;
    conn.Close();
}

二、使用DataAdapter的方式抽取数据

DataSet是特意为独立于所有数据源的数据访问而设计的,可以理解成内存中的数据库。

在支持ADO.NET的断开式、分布式数据方案中起着重要的作用。

DataSet是数据驻留在内存中的表现形式,无论是什么数据源,它都可以提供一致的编程模型。

DataSet支持改变数据然后回传给数据库。

示例:使用DataAdapter抽取数据到DataTable中,在DataGridView中进行显示

此示例的测试数据与文档第一部分测试数据相同。

此示例代码如下:

在编写代码之前需要对DataGridView控件进行编辑列操作。

设置DataGridView控件的AllowUserToAddRows=False实现清楚最后一个空行,SelectionMode=FullRowSelect实现整行选中模式,用户体验更好。

//窗体加载事件
private void Form1_Load(object sender, EventArgs e)
{
    //1-定义连接字符串 
    //string connStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=.";
    //2-编写连接字符串(sql用户名密码方式连接)
    string connStr = "server=.;database=DBTEST;uid=sa;pwd=123456";
    //2-定义连接对象,打开连接
    SqlConnection conn = new SqlConnection(connStr);
    conn.Open();
    //3-编写sql语句
    string sql = "select * from Member";
    //4-数据适配器抽取信息
    SqlDataAdapter adp = new SqlDataAdapter(sql, conn);
    DataTable dt = new DataTable();  //数据表格
    adp.Fill(dt);
    this.dataGridView1.AutoGenerateColumns = false;   //自动列取消
    this.dataGridView1.DataSource = dt;

    //显示人数
    adp.SelectCommand.CommandText = "select count(*) from Member";
    int count = (int)adp.SelectCommand.ExecuteScalar();
    this.lblCount.Text = "会员人数:" + count;
    conn.Close();
}
//修改数据后跟新数据库的按钮事件
private void btUpdate_Click(object sender, EventArgs e)
{
    //1-定义连接字符串 
    //string connStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=.";
    //2-编写连接字符串(sql用户名密码方式连接)
    string connStr = "server=.;database=DBTEST;uid=sa;pwd=123456";
    //2-定义连接对象,打开连接
    SqlConnection conn = new SqlConnection(connStr);
    conn.Open();
    //3-编写sql语句
    string sql = "select * from Member";
    //4-数据适配器抽取信息
    SqlDataAdapter adp = new SqlDataAdapter(sql, conn);
    DataTable dt = new DataTable();  //数据表格
    adp.Fill(dt);

    //添加一条数据
    DataRow dr = dt.NewRow();
    dr["MemberAccount"] = "weiyan";
    dr["MemberPwd"] = "123456";
    dr["MemberName"] = "魏延";
    dr["MemberPhone"] = "15352565585";
    dt.Rows.Add(dr);
    //修改一条数据
    dt.Rows[1]["MemberPwd"] = "654321";
    //删除一条数据
    dt.Rows[4].Delete();
    //跟新数据到数据库
    SqlCommandBuilder sqlBuilder = new SqlCommandBuilder(adp);
    adp.Update(dt);
    //确认DataTable的数据变化,并且重新绑定到控件
    dt.AcceptChanges();
    this.dataGridView1.DataSource = dt;
    MessageBox.Show("数据跟新成功!");
}

三、非查询操作

非查询操作分为"添加","删除","修改"操作,这些操作处理sql语句不同,其他编码是一样的,所以在此文档中以添加操作为例介绍非查询操作。

示例:添加会员信息

此示例的测试数据与文档第一部分测试数据相同。

此示例中通过两种方式添加数据:

  • (1)使用DataAdapter的command跟新数据
  • (2)直接使用SqlCommand对象跟新数据

此示例代码如下:

//方案一:使用DataAdapter的command跟新数据
private void btAdd1_Click(object sender, EventArgs e)
{
    //1-定义连接字符串 
    //string connStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=.";
    //2-编写连接字符串(sql用户名密码方式连接)
    string connStr = "server=.;database=DBTEST;uid=sa;pwd=123456";
    //2-定义连接对象,打开连接
    SqlConnection conn = new SqlConnection(connStr);
    conn.Open();
    //3-编写sql语句
    string sql = string.Format("insert into Member(MemberAccount,MemberPwd,MemberName,MemberPhone)  values('{0}', '{1}', '{2}', '{3}')"
        , this.txtAccount.Text, this.txtPwd.Text, this.txtNickName.Text, this.txtPhone.Text);
    //4-数据适配器
    SqlDataAdapter adp = new SqlDataAdapter(sql, conn);
    //执行sql语句
    int rowCount = adp.SelectCommand.ExecuteNonQuery();
    conn.Close();
    if(rowCount == 1)
        MessageBox.Show("添加成功!");
    else
        MessageBox.Show("添加失败!");
}

//方案二:直接使用SqlCommand对象跟新数据
private void btAdd2_Click(object sender, EventArgs e)
{
    //1-编写连接字符串(windows方式连接)
    //string connStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=.";
    //2-编写连接字符串(sql用户名密码方式连接)
    string connStr = "server=.;database=DBTEST;uid=sa;pwd=123456";
    //2-创建连接对象,打开数据库连接
    SqlConnection conn = new SqlConnection(connStr);
    conn.Open();
    //3-编写sql语句
    string sql = string.Format("insert into Member(MemberAccount,MemberPwd,MemberName,MemberPhone)  values('{0}', '{1}', '{2}', '{3}')"
            , this.txtAccount.Text, this.txtPwd.Text, this.txtNickName.Text, this.txtPhone.Text);
    //4-定义执行命令的对象执行命令
    SqlCommand cmd = new SqlCommand(sql, conn);
    int rowCount = cmd.ExecuteNonQuery();      
    conn.Close();
    if (rowCount == 1)
        MessageBox.Show("添加成功!");
    else
        MessageBox.Show("添加失败!");
}

四、一个窗体中实现会员信息的增加,删除,修改,查询操作

此示例的测试数据与文档第一部分测试数据相同。

业务需求:

  • (1)窗体加载的时候显示数据。
  • (2)输入字段内容,点击新增按钮,可以添加数据
  • (3)鼠标选中一行,右键弹出删除菜单,可以删除数据
  • (4)鼠标选中一行,将会员信息在右侧文本框中显示,重新编辑后可以点击修改按钮实现数据的修改

代码如下:

绑定数据的通用方法:

//绑定数据的方法
private void BindData()
{
    //1-定义连接字符串 
    //string connStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=.";
    //2-编写连接字符串(sql用户名密码方式连接)
    string connStr = "server=.;database=DBTEST;uid=sa;pwd=123456";
    //2-定义连接对象,打开连接
    SqlConnection conn = new SqlConnection(connStr);
    conn.Open();
    //3-编写sql语句
    string sql = "select * from Member";
    //4-数据适配器抽取信息
    SqlDataAdapter adp = new SqlDataAdapter(sql, conn);
    DataTable dt = new DataTable();  //数据表格
    adp.Fill(dt);
    this.dataGridView1.AutoGenerateColumns = false;   //自动列取消
    this.dataGridView1.DataSource = dt;
    conn.Close();
}

窗体加载事件代码:

//窗体加载事件
private void Form1_Load(object sender, EventArgs e)
{
	BindData();
}

新增按钮的点击事件代码:

//添加信息按钮事件
private void btAdd_Click(object sender, EventArgs e)
{
    //1-编写连接字符串(windows方式连接)
    //string connStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=.";
    //2-编写连接字符串(sql用户名密码方式连接)
    string connStr = "server=.;database=DBTEST;uid=sa;pwd=123456";
    //2-创建连接对象,打开数据库连接
    SqlConnection conn = new SqlConnection(connStr);
    conn.Open();
    //3-编写sql语句
    string sql = string.Format("insert into Member(MemberAccount,MemberPwd,MemberName,MemberPhone)  values('{0}', '{1}', '{2}', '{3}')"
    , this.txtAccount.Text, this.txtPwd.Text, this.txtNickName.Text, this.txtPhone.Text);
    //4-定义执行命令的对象执行命令
    SqlCommand cmd = new SqlCommand(sql, conn);
    int rowCount = cmd.ExecuteNonQuery();
    conn.Close();
    if (rowCount == 1)
    	MessageBox.Show("添加成功!");
    else
    	MessageBox.Show("添加失败!");
    BindData();
}

DataGridView控件的点击事件代码:

//网格控件的点击事件
private void dataGridView1_Click(object sender, EventArgs e)
{
    //当AllowUserToAddRows=True的时候,防止用户选择最后一个空行
    if (this.dataGridView1.SelectedRows[0].Cells[0].Value.ToString().Equals(""))
    {
        MessageBox.Show("请正确选择!");
        return;
    }
    int memId = int.Parse(this.dataGridView1.SelectedRows[0].Cells[0].Value.ToString());
    //MessageBox.Show(memId.ToString());
    //1-定义连接字符串 
    string connStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=.";
    //2-定义连接对象,打开连接
    SqlConnection conn = new SqlConnection(connStr);
    conn.Open();
    //3-编写sql语句
    string sql = "select * from Member where MemberId = " + memId;
    //-抽取数据
    SqlDataAdapter adp = new SqlDataAdapter(sql, conn);
    DataTable dt = new DataTable();
    adp.Fill(dt);
    conn.Close();
    this.txtAccount.Text = dt.Rows[0]["MemberAccount"].ToString();
    this.txtPwd.Text = dt.Rows[0]["MemberPwd"].ToString();
    this.txtNickName.Text = dt.Rows[0]["MemberName"].ToString();
    this.txtPhone.Text = dt.Rows[0]["MemberPhone"].ToString();
}

修改按钮的点击事件代码:

//修改按钮的点击事件
private void btUpdate_Click(object sender, EventArgs e)
{
    int memId = int.Parse(this.dataGridView1.SelectedRows[0].Cells[0].Value.ToString());
    string connStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=.";
    SqlConnection conn = new SqlConnection(connStr);
    conn.Open();
    string sql = string.Format("update Member set MemberAccount='{0}',MemberPwd='{1}',MemberName='{2}',MemberPhone='{3}' where MemberId='{4}'"
        , this.txtAccount.Text, this.txtPwd.Text, this.txtNickName.Text, this.txtPhone.Text, memId);
    SqlCommand cmd = new SqlCommand(sql, conn);
    int rowCount = cmd.ExecuteNonQuery();
    conn.Close();
    if (rowCount == 1)
        MessageBox.Show("修改成功!");
    else
        MessageBox.Show("修改失败!");
    BindData();
}

//删除菜单的点击事件代码:

//删除信息弹出菜单事件
private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
    DialogResult r = MessageBox.Show("您确定要删除吗?", "****系统", MessageBoxButtons.YesNo);
    if (r == System.Windows.Forms.DialogResult.No)
    {
        return;
    }
    int memId = int.Parse(this.dataGridView1.SelectedRows[0].Cells[0].Value.ToString());
    string connStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=.";
    SqlConnection conn = new SqlConnection(connStr);
    conn.Open();
    string sql = "delete from Member where MemberId = " + memId;
    SqlCommand cmd = new SqlCommand(sql, conn);
    int rowCount = cmd.ExecuteNonQuery();
    conn.Close();
    if (rowCount == 1)
        MessageBox.Show("删除成功!");
    else
        MessageBox.Show("删除失败!");
    BindData();
}

五、多个窗体中实现会员信息的增加,删除,修改,查询操作

此示例的测试数据与文档第一部分测试数据相同。

业务需求:

  • (1)窗体加载的时候显示数据。
  • (2)点击"添加数据"按钮,弹出新窗体,在新窗体中进行数据的添加,添加完成后自动刷新表格数据。

  • (3)鼠标选中一行,右键弹出删除菜单,可以删除数据
  • (4)鼠标选中一行,点击"编辑数据"按钮,弹出新窗体,在新窗体中进行数据修改,修改后自动刷新表格数据。

实现步骤如下:

(1)查询窗体显示数据代码:

//绑定数据的方法
public void BindData()
{
    //1-定义连接字符串 
    //string connStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=.";
    //2-编写连接字符串(sql用户名密码方式连接)
    string connStr = "server=.;database=DBTEST;uid=sa;pwd=123456";
    //2-定义连接对象,打开连接
    SqlConnection conn = new SqlConnection(connStr);
    conn.Open();
    //3-编写sql语句
    string sql = "select * from Member";
    //4-数据适配器抽取信息
    SqlDataAdapter adp = new SqlDataAdapter(sql, conn);
    DataTable dt = new DataTable();  //数据表格
    adp.Fill(dt);
    this.dataGridView1.AutoGenerateColumns = false;   //自动列取消
    this.dataGridView1.DataSource = dt;
    conn.Close();
}
private void FrmSelect_Load(object sender, EventArgs e)
{
    BindData();
}

(2)"删除"菜单代码:

private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
    DialogResult r = MessageBox.Show("您确定要删除吗?", "****系统", MessageBoxButtons.YesNo);
    if (r == System.Windows.Forms.DialogResult.No)
    {
        return;
    }
    int memId = int.Parse(this.dataGridView1.SelectedRows[0].Cells[0].Value.ToString());
    string connStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=.";
    SqlConnection conn = new SqlConnection(connStr);
    conn.Open();
    string sql = "delete from Member where MemberId = " + memId;
    SqlCommand cmd = new SqlCommand(sql, conn);
    int rowCount = cmd.ExecuteNonQuery();
    conn.Close();
    if (rowCount == 1)
        MessageBox.Show("删除成功!");
    else
        MessageBox.Show("删除失败!");
    BindData();
}

(3)会员添加窗体代码:

private void btAdd_Click(object sender, EventArgs e)
{
    //1-编写连接字符串(windows方式连接)
    //string connStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=.";
    //2-编写连接字符串(sql用户名密码方式连接)
    string connStr = "server=.;database=DBTEST;uid=sa;pwd=123456";
    //2-创建连接对象,打开数据库连接
    SqlConnection conn = new SqlConnection(connStr);
    conn.Open();
    //3-编写sql语句
    string sql = string.Format("insert into Member(MemberAccount,MemberPwd,MemberName,MemberPhone)  values('{0}', '{1}', '{2}', '{3}')"
            , this.txtAccount.Text, this.txtPwd.Text, this.txtNickName.Text, this.txtPhone.Text);
    //4-定义执行命令的对象执行命令
    SqlCommand cmd = new SqlCommand(sql, conn);
    int rowCount = cmd.ExecuteNonQuery();
    conn.Close();
    if (rowCount == 1)
        MessageBox.Show("添加成功!");
    else
        MessageBox.Show("添加失败!");
    //刷新查询窗体数据并关闭当前窗体
    ((FrmSelect)this.Owner).BindData();
    this.Close();
}

(4)会员编辑窗体代码:

public int MemId { get; set; }  //接受外部传递过来的会员编号
//绑定会员详情到文本框
private void BindDetail()
{
    //1-定义连接字符串 
    string connStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=.";
    //2-定义连接对象,打开连接
    SqlConnection conn = new SqlConnection(connStr);
    conn.Open();
    //3-编写sql语句
    string sql = "select * from Member where MemberId = " + this.MemId;
    //-抽取数据
    SqlDataAdapter adp = new SqlDataAdapter(sql, conn);
    DataTable dt = new DataTable();
    adp.Fill(dt);
    conn.Close();
    this.txtAccount.Text = dt.Rows[0]["MemberAccount"].ToString();
    this.txtPwd.Text = dt.Rows[0]["MemberPwd"].ToString();
    this.txtNickName.Text = dt.Rows[0]["MemberName"].ToString();
    this.txtPhone.Text = dt.Rows[0]["MemberPhone"].ToString();
}
private void FrmEdit_Load(object sender, EventArgs e)
{
    BindDetail();
}
private void btUpdate_Click(object sender, EventArgs e)
{
    string connStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=.";
    SqlConnection conn = new SqlConnection(connStr);
    conn.Open();
    string sql = string.Format("update Member set MemberAccount='{0}',MemberPwd='{1}',MemberName='{2}',MemberPhone='{3}' where MemberId='{4}'"
        , this.txtAccount.Text, this.txtPwd.Text, this.txtNickName.Text, this.txtPhone.Text, this.MemId);
    SqlCommand cmd = new SqlCommand(sql, conn);
    int rowCount = cmd.ExecuteNonQuery();
    conn.Close();
    if (rowCount == 1)
        MessageBox.Show("修改成功!");
    else
        MessageBox.Show("修改失败!");
    //刷新查询窗体数据并关闭当前窗体
    ((FrmSelect)this.Owner).BindData();
    this.Close();
}

(5)查询窗体"添加数据"和"编辑数据"按钮的代码:

private void btAdd_Click(object sender, EventArgs e)
{
    FrmAdd frm = new FrmAdd();
    frm.Owner = this;
    frm.Show();
}
private void btEdit_Click(object sender, EventArgs e)
{
    if (this.dataGridView1.SelectedRows[0].Cells[0].Value.ToString().Equals(""))
    {
        MessageBox.Show("请正确选择!");
        return;
    }
    int memId = int.Parse(this.dataGridView1.SelectedRows[0].Cells[0].Value.ToString());
    FrmEdit frm = new FrmEdit();
    frm.MemId = memId;
    frm.Owner = this;
    frm.Show();
}

到此这篇关于ADO.NET基础知识的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: ADO.NET基础知识详解

本文链接: https://www.lsjlt.com/news/147620.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ADO.NET基础知识详解
    ADO.NET是微软提供的一种数据库访问技术。 ADO.NET为不同类型的数据源提供了不同的数据提供程序对象: 数据提供程序说明SQL Server 数据提供程序提供对Microso...
    99+
    2022-11-13
  • 详解Zookeeper基础知识
    目录1. 简介2. 数据模型2.1 模型结构2.2 模型的特点2.3 节点分类2.3.1 Persistent2.3.2 Persistent Sequential2.3.3 Eph...
    99+
    2022-11-12
  • Javascript基础知识详解
    目录变量数据类型扩展点总结变量 基本语法 var age=10;//声明一个名称为age的变量,并且为它赋值,称为变量的初始化 var是一个JS关键字,用来声明...
    99+
    2022-11-12
  • linux基础知识-vmstat详解
    1. 前言 vmstat(VirtualMeomoryStatistics,虚拟内存统计)是一个不错的Linux/Unix监控工具,在性能测试中除了top外也是比较常用的工具之一,它可以监控操作系统的...
    99+
    2023-09-24
    linux 运维 服务器
  • linux基础知识-sar详解
    1.前言 sar(System Activity Reporter系统活动情况报告)是目前Linux比较全的系统性能分析工具之一,可以从多方面对系统的活动进行报告 ,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用...
    99+
    2023-08-19
    linux 服务器 运维
  • Android RecyclerView 基础知识详解
    本周的谷歌I/O大会带来了很多关于Android的振奋人心的消息。可能我们需要较长的时间来消化Android L引入的新东西。 这些天我一直在研究RecyclerView,并想...
    99+
    2022-06-06
    recyclerview Android
  • PHP基础知识详细讲解
    目录一、简介二、php基本语法三、变量和作用域四、常量五、数据类型六、运算符七、流程控制八、超全局变量一、简介 基础知识: 需要一定的html和css的语法知识 基本概念: PHP(...
    99+
    2022-12-03
    PHP基础知识 PHP基础语法
  • 【MySQL】MySQL基础知识详解(一)
    MySQL select列的别名去除重复行空值参与运算着重号查询常数显示表结构过滤数据 排序使用 ORDER BY 对查询到的数据进行排序操作。使用列的别名,进行排序二级排序 分页LI...
    99+
    2023-09-04
    mysql 数据库 SQL
  • Python基础知识之变量的详解
    目录一.定义二.命名方法2.1小驼峰命名法2.2大驼峰命名法2.3下划线命名法三.命名规则3.1标识符3.2关键字四.使用方法4.1单变量赋值:4.2底层逻辑:4.3总结:5.变量进...
    99+
    2022-11-12
  • Android基础知识之broadcast广播详解
    Android中的广播用的太多了,今天稍微总结一下。 按注册方式分为两种: 1.静态注册广播: 静态注册广播就是在androidManifest.xml文件中注册广播,假设...
    99+
    2022-06-06
    Android
  • Docker基础知识之Linux namespace图文详解
    前言 docker 是“新瓶装旧酒”的产物,依赖于 linux 内核技术 chroot 、namespace 和 cgroup。本篇先来看 namespace 技术。 Docker 和虚拟机技术一样,从操作系统级上实现了...
    99+
    2022-06-04
    docker namespace linux namespace 好处 linux namespace技术
  • R语言决策基础知识点详解
    决策结构要求程序员指定要由程序评估或测试的一个或多个条件,以及如果条件被确定为真则要执行的一个或多个语句,如果条件为假则执行其他语句。 以下是在大多数编程语言中的典型决策结构的一般形...
    99+
    2022-11-12
  • C语言入门之基础知识详解
    目录一、思维导图二、环境搭建三、编码规范四、基本数据类型五、分支循环5.1 分支5.2 循环六、break与continue6.1 无限循环一、思维导图 内容不限于此思维导图 二、...
    99+
    2022-11-12
  • C语言操作符基础知识详解
    目录一.单目操作符:二.关系操作符三.条件操作符四.逗号表达式五.逻辑操作符总结一.单目操作符: !:逻辑反操作符; -:负数操作符; +:整数操作符; &:取地址操作符; ...
    99+
    2022-11-12
  • Linux的基础知识讲解
    本篇内容主要讲解“Linux的基础知识讲解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux的基础知识讲解”吧!计算机组成。CPU,: 运算器、控制器、寄存器、缓存;存储器: 内存(Ran...
    99+
    2023-06-05
  • python基础知识
    1.注释   1.1.单行注释:以#开头,#右边的有所东西当做说明.   1.2.多行注释:'''   我是多行注释   '''   2.变量   2.1.为了充分的利用内存空间以及更有效率的管理内存,变量是有不同类型的     2.1....
    99+
    2023-01-30
    基础知识 python
  • MySQL基础知识
    1、MySQL查询 union和union all的区别: union和union all都可以将两边的查询结果合并,区别在于union的合并会去掉重复行,并且使用默认的排序规则。而un...
    99+
    2022-01-06
    MySQL基础知识
  • nodejs基础知识
    什么是nodejs? node.js是基于Chrome javaScript运行时建立的平台,用于方便地搭建响应速度快、易于扩展的网络应用。(但nodejs不是javascript应用,nodejs...
    99+
    2022-06-04
    基础知识 nodejs
  • MHA基础知识
    环境: ...
    99+
    2022-10-18
  • Oracle基础知识
    1、Oracle分页查询 现有表employee_tbl,要求按年龄降序,分页查询数据,每页3条数据。 ID  NAME         DATE                             SIGNIN   AGE 1 ...
    99+
    2018-10-23
    Oracle基础知识
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作