关注我,为您分享C#技术实现,感谢点赞及收藏、转发
概述
1.它是.NET编程环境中优先使用的数据访问接口
2.ADO.NET传送的数据都是xml格式的
3.ADO.NET是一组用于和数据源进行交互的面向对象类库
4.数据源:通常是各种数据库,但文本文件、Excel表格和XML这类文件也可以读取
5.ADO.NET为不同数据源提供不同的支持类库,我们称之为Data Providers
一、 C# 访问数据库
1.必须导入包含适当的ADO.NET类的名称空间。
2.获取具体的数据库连接字符串。
3.实例化Connection对象,并建立、打开链接。
4.使用Command对象,从数据库存取器中读取数据或向数据存取器中写入数据,或是执行SQL语句。
5.关闭连接
代码示例:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 窗体加载
/// </summary>
/// <param name=" sender "></param>
/// <param name=" e "></param>
private void Form1_Load( object sender, EventArgs e)
{
//确定数据库连接字符串
string constr = "server=127.0.0.1;databse=Zzdb;uid=sa;pwd=123456" ;
//实例化数据库连接对象
SqlConnection conn = new SqlConnection(constr);
//打开数据库连接
conn.Open();
//实例化SqlCommand对象(该对象主要用来执行sql语句)
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select id,name from classify" ;
//确定上面为CommandText属性所赋的值到底是sql语句还是存储过程名称
cmd.CommandType = CommandType.Text;
//指定该命令所用的数据库连接
cmd.Connection = conn;
//申明一个SqlDataReader(数据流)对象,并将cmd执行后的结果交给它
SqlDataReader sdr = cmd.ExecuteReader();
//循环整个SqlDataReader对象,将里面的值取出来添加到ListBox中
//sdr.Read()的作用是前进到下一条记录,这也说明SqlDataReader中的数据是一行行放置的
while (sdr.Read())
{
////将数据流中的第一列的值添加到comboBox1的项中
comboBox1.Items.Add(sdr[0] + "-->" + sdr[ "name" ]);
////上面这句也可以用下面这句代替,sdr["name"]表示当前sdr的name列的值
/// listbox1.items.Add(sdr["name"]);
}
//关闭数据流对象
sdr.Close();
//关闭数据库连接
conn.Close();
}
private void button1_Click( object sender, EventArgs e)
{
//确定数据库连接字符串
string constr = "server=127.0.0.1;databse=Zzdb;uid=sa;pwd=123456" ;
//实例化数据库连接对象
SqlConnection conn = new SqlConnection(constr);
//打开数据库连接
conn.Open();
int i = comboBox1.Text.IndexOf( "-->" ); //获取字符串中-->所在位置索引
string id = comboBox1.Text.Substring(0,i); //只获取-->之前的字符
//实例化SqlCommand对象(该对象主要用来执行sql语句)
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select * from product where cid =" +id;
//确定上面为CommandText属性所赋的值到底是sql语句还是存储过程名称
cmd.CommandType = CommandType.Text;
//指定该命令所用的数据库连接
cmd.Connection = conn;
//申明一个SqlDataReader(数据流)对象,并将cmd执行后的结果交给它
SqlDataReader sdr = cmd.ExecuteReader();
//清空listbox1中的项
listBox1.Items.Clear();
while (sdr.Read())
{
//将数据流中的第一列的值添加到listbox1的项中
listBox1.Items.Add(sdr[ "name" ]);
//上面这句也可以用下面这句代替,sdr["name"]表示当前sdr的name列的值
//lisbox1.Items.Add(sdr["name"]);
}
//关闭数据流对象
sdr.Close();
//关闭数据库连接
conn.Close();
}
}
