博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ADO.net学习
阅读量:5764 次
发布时间:2019-06-18

本文共 4834 字,大约阅读时间需要 16 分钟。

<1>在VS2017中建立Windows 窗体应用(.NET Framework)项目。

<2>在解决方案资源管理器中,打开Form1.cs,主题窗口会出现Form1.cs[设计]的标题。

<3>打开工具栏,找到Button控件,将该控件拖拽到设计面板中,右键这个控件,点击属性,在Text栏目中输入该按钮的名称。在"设计"的(Name)栏目中输入该按钮的响应函数的名字。我设计的是:btnCreateConnection。软后双击这个按钮,就会转向Form.cs中的btnCreateConnection_Click。也就是该按钮的点击的响应函数。设置这个函数的目的是第一次连接数据库。

<4>[注:本文连接的是SQLserver数据库]。

<5>增加命名空间:

 

 命名空间是用于 SQL Server 的 .NET 数据提供程序

用于使用DbConnection,DbCommand,DbDataReader类等。

 命名空间包含提供用于处理配置数据的编程模型的类。

数据库文件:链接: 密码:8jjw

下载后所包含的数据库文件有:

 BulkCopy.mdf,

 BulkCopy_log.ldf; 

 PUBS.MDF,

 PUBS_LOG.LDF;

我将这些数据库文件附加到了SQL Server2014的数据库管理系统中,这样的话接下来写的程序对数据库的更改变化就可以通过Navicat直观地查看内容的变化。

<6>在btnCreateConnection_Click响应函数中连接数据库,这里遇到了分支。第一种情况是数据库文件在解决方案资源管理器中,第二种情况是数据库附加到数据库管理系统或者该数据库由数据库管理系统创建。

第一种情况:数据库文件在解决方案管理器中。

A,当直接在响应函数中写连接数据库的语句时:

DbConnection con = new SqlConnection();con.ConnectionString =             @"Data Source=.\SQLEXPRESS;"            + "AttachDbFilename=|DataDirectory|PUBS.MDF;"            + "Integrated Security=True;User Instance=True";con.Open();//Do lots of cool work herecon.Close();

B,当用配置文件里面封装的内容连接数据库时,语句为:

配置文件(也就是App.config)里面封装的内容需要添加:

(在<configuration></configuration>也就是XML的根元素中添加内容)

在响应函数中写的语句为:

ConnectionStringSettings pubs = ConfigurationManager.ConnectionStrings["PubsData"];DbConnection con = new SqlConnection(pubs.ConnectionString);

con.Open();//Do lots of cool work herecon.Close();

为了验证连接数据库成功,可以通过在//Do lots of cool work here中查询数据库中表的内容验证:

DbCommand cmd = con.CreateCommand(); cmd.CommandText = "select * from sales"; con.Open(); DbDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) {       while (dr.Read()) {                    string stor_id = dr["stor_id"].ToString();                    string ord_num = dr["ord_num"].ToString();                    string ord_date = dr["ord_date"].ToString();                    string title_id = dr["title_id"].ToString();                    Console.WriteLine(stor_id+" "+ord_num+" "+ord_date+" "+title_id);            } }
这里就可以体现了将数据库文件附加到数据库管理系统之后通过Navicate查看表的优势。表中的各个关键字都可以查看,以便写出while(dr.Read())中的语句。

第二种情况:数据库附加到数据库管理系统或者该数据库由数据库管理系统创建。

A,当直接在响应函数中写连接数据库的语句时:

DbConnection con = new SqlConnection();con.ConnectionString = @"Initial Catalog=PUBS;Persist Security Info=True;User ID=sa;password=hl123456789";con.Open();

//Do lots of cool work herecon.Close();

尤其要根据自己的数据库管理系统设置相应的User ID跟password。

B,当用配置文件里面封装的内容连接数据库时,语句为:

配置文件里的语句为:

响应函数中的语句为:

 
string connectionString = ConfigurationManager.ConnectionStrings["dbstconnectionstring"].ConnectionString;DbConnection conn = new SqlConnection(connectionString);DbCommand cmd = conn.CreateCommand();cmd.CommandText = "select * from authors";conn.Open();//Do a lot of workconn.Close();
[注:]第<6>个内容中,如果想通过响应函数来查看配置文件的具体内容时候,语句可以写成:(这里接的是第<6>个内容的第一种情况的B类)

 
ConnectionStringSettings pubs = ConfigurationManager.ConnectionStrings["PubsData"];DbConnection connection = new SqlConnection(pubs.ConnectionString);//name = "PubsData"string name = pubs.Name;//provider = "System.Data.SqlClient"string provider = pubs.ProviderName;//cnString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\PUBS.MDF;Integrated Security=True;User Instance=True"string cnString = pubs.ConnectionString;MessageBox.Show("From App.Config: " + cnString+"\n"+name+"\n"+provider);

<7>使用DataGridView控件,和按钮的响应事件,来显示 SqlConnection的数据源的架构信息

其中:

GetSchema():返回此 SqlConnection 的数据源的架构信息

GetSchema(String):使用表示架构名称的指定字符串返回此 SqlConnection 的数据源的架构信息

我设计了两个DataGridView控件,分别为dataGridView1,dataGridView2,第一个用于GetSchema(),第二个用于GetSchema(String),其中dataGridView2用于点击dataGridView1中的行的内容,显示具体的内容。

准备:

按钮,响应函数为:btnGetSchema_Click

自己写一个dataGridView事件变化函数ataGridView_SelectionChange

并在dataGridView1属性(闪电栏目)中的SelectionChange响应事件中添加写的这个函数。

源程序为:

private void btnGetSchema_Click(object sender, EventArgs e)      {         //Get the settings from the configuration file         ConnectionStringSettings pubs = ConfigurationManager.ConnectionStrings["PubsData"];         DbConnection connection = new SqlConnection(pubs.ConnectionString);         connection.Open();         DataTable schema = connection.GetSchema();         connection.Close();         dataGridView1.DataSource = schema;      }      private void dataGridView1_SelectionChanged(object sender, EventArgs e)      {         DataTable schema = (DataTable)dataGridView1.DataSource;         DataRow currentRow = schema.Rows[dataGridView1.CurrentCell.RowIndex];         string collection = (string)currentRow["CollectionName"];         //Get the settings from the configuration file         ConnectionStringSettings pubs = ConfigurationManager.ConnectionStrings["PubsData"];         DbConnection connection = new SqlConnection(pubs.ConnectionString);         connection.Open();         DataTable schema2 = connection.GetSchema(collection);         connection.Close();         dataGridView2.DataSource = schema2;      }

转载地址:http://olwux.baihongyu.com/

你可能感兴趣的文章
js函数大全
查看>>
Mongodb启动命令mongod参数说明
查看>>
TCP&UDP压力测试工具
查看>>
Android 最简单的自定义Dialog之一
查看>>
磨刀不误砍柴 - 配置适合工作学习的桌面环境
查看>>
redux v3.7.2源码解读与学习之 applyMiddleware
查看>>
【React】为什么我不再使用setState?
查看>>
Git原理与高级使用(3)
查看>>
从JDK源码看Writer
查看>>
Express 结合 Webpack 实现HMRwi
查看>>
基于protobuf的RPC实现
查看>>
我的友情链接
查看>>
HAProxy负载均衡原理及企业级实例部署haproxy集群
查看>>
开源中国动弹客户端实践(三)
查看>>
Win 8创造颠覆性体验:预览版关键更新
查看>>
vim在多文件中复制粘贴内容
查看>>
Android ContentObserver
查看>>
疯狂java学习笔记1002---非静态内部类
查看>>
ISA2006实战系列之一:实战ISA三种客户端部署方案(上)
查看>>
TCP服务器
查看>>