2022年C#编写数据库连接测试事例知识讲解 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年C#编写数据库连接测试事例知识讲解 .pdf》由会员分享,可在线阅读,更多相关《2022年C#编写数据库连接测试事例知识讲解 .pdf(21页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、C#编 写 数 据 库 连 接 测试 事 例名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 21 页 - - - - - - - - - C#实现数据库测试1.实现 sqlserver2000 的数据读取如图所示:可以通过连接数据库sql-选择数据库 -选择表来完成; #region连 ?接 ? 数o y据Y库a privatevoid button1_Click(object sender, EventArgs e) initdb(textBox1.Text, text
2、Box2.Text.ToString(),0); #endregion #region 读取选择的数据库,将数据库中包含的表加入到listbox2中 private void listBox1_DoubleClick(object sender, EventArgs e) string s = ; s = listBox1.SelectedItem.ToString(); initdb(textBox1.Text, s,0); #endregion #region 读取某表的内容 private void listBox2_DoubleClick(object sender, EventArg
3、s e) string s = ; string s1 = ; s = listBox1.SelectedItem.ToString(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 21 页 - - - - - - - - - s1 = listBox2.SelectedItem.ToString(); string retstr = open_table(textBox1.Text, s, s1, ); open_table(textBox1.Text, s, s
4、1,retstr); #endregion 其中 initdb 函数如下: #region 初始化 sql,连接ip 地址,也可以用于读取某数据库有多少个数据表initdb / if dbname is null ,then return system_db_name /else connect dqlname(ip),connect dbname return tablename of dbname public bool initdb(string sqlname/*sqlserver ip */,string dbname /*database name */,int bz) /如果数据
5、库名称为空,返回数据库的所有名称; if (dbname = ) connectstring = server = + sqlname + ;database=master;uid=sa;pwd=; commandstring = select name from sysdatabases; try string yg_code = 1; /这里是定义了一个参数数组,不过里面就一条参数 SqlParameter parameters = new SqlParameter(yh_code, yg_code) ; /这个 SqlDataAdapter 很强大,与数据库的交互就靠它来实现的 /在初始
6、化时把sqlCommand,connString 传入设计好的构造器 SqlDataAdapter Adapter = new SqlDataAdapter(commandstring, connectstring); /将参数加入到Adapter 中 Adapter.SelectCommand.Parameters.AddRange(parameters); /这句话就是集执行查询和保存功能于一体的核心语句了 /简单来说就是执行了sqlCommand 里的查询语句,并且把结果以表的形式存在了ds 里面 ds.Clear(); dt.Clear(); Adapter.Fill(ds); /把
7、ds 表集合里的第一个表复制给dt dt = ds.Tables0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 21 页 - - - - - - - - - /dr.Close();/关闭执行 /con.Close();/关闭数据库 int count = dt.Columns.Count;/ 一条记录包含的列数; int rows = dt.Rows.Count;/记录个数 Console.WriteLine( 查找到记录个数:0,每条记录有1个字段 , rows
8、, count); recordstru myrec = new recordstru(1000); /string tmp = ; int i = 0; while (i+ rows) listBox1.Items.Add(dt.Rowsi0.ToString(); catch (Exception ex) Console.WriteLine(ex.Message); else connectstring = server =+sqlname+;database=+dbname+;uid=sa;pwd=; if(bz=0) commandstring = SELECT * FROM syso
9、bjects WHERE (xtype = U); else commandstring = dbname; try string yg_code = 1; /这里是定义了一个参数数组,不过里面就一条参数 SqlParameter parameters = new SqlParameter(yh_code, yg_code) ; /这个 SqlDataAdapter 很强大,与数据库的交互就靠它来实现的 /在初始化时把sqlCommand,connString 传入设计好的构造器 SqlDataAdapter Adapter = new SqlDataAdapter(commandstring
10、, connectstring); /将参数加入到Adapter 中名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 21 页 - - - - - - - - - Adapter.SelectCommand.Parameters.AddRange(parameters); /这句话就是集执行查询和保存功能于一体的核心语句了 /简单来说就是执行了sqlCommand 里的查询语句,并且把结果以表的形式存在了ds 里面 ds.Clear(); dt.Clear(); Adapt
11、er.Fill(ds); /把 ds 表集合里的第一个表复制给dt dt = ds.Tables0; /dr.Close();/关闭执行 /con.Close();/关闭数据库 int count = dt.Columns.Count;/ 一条记录包含的列数; int rows = dt.Rows.Count;/记录个数 Console.WriteLine( 查找到记录个数:0,每条记录有1个字段 , rows, count); recordstru myrec = new recordstru(1000); string tmp = ; int i = 0; listBox2.Items.C
12、lear(); while (i+ rows) tmp = ; listBox2.Items.Add(dt.Rowsi0.ToString(); /Console.WriteLine(dt.Rowsi0.ToString(); catch (Exception ex) return false; #endregion 2.实现 access数据库的读写 #region 读取 access 数据库 private void button2_Click(object sender, EventArgs e) try 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
13、- - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 21 页 - - - - - - - - - string mypath = Application.StartupPath + mydata.accdb; /连接数据库的路径及数据库名 if (!File.Exists(mypath) /判断文件是否存在 MessageBox.Show(mypath + 文件未找到! ); return; else Console.WriteLine(mypath); string constr = Provider = Microsoft.ACE.OLEDB.12.0
14、; Data Source = + mypath; / 生成连接数据库字符串 OleDbConnection mycon = new OleDbConnection(constr); / 定 义OleDbConnection 对象实例并连接数据库 string mysql = select * from mytable; /Sql 查询语句 OleDbDataAdapter myada = new OleDbDataAdapter(mysql, mycon); / 定义OleDbDataAdapter 对象实例并连接数据库表 DataSet myds = new DataSet(); / 定义
15、 DataSet 对象实例 myada.Fill(myds); / 填充数据集 dataGridView1.DataSource = myds.Tables0.DefaultView; / 连接数据表格,显示数据 mycon.Close(); / 关闭 OleDbConnection 对象实例 mycon.Dispose(); /释放 OleDbConnection 对象实例所占资源空间 catch return; #endregion 3.实现 sqllite 的读写; #region 连接 sqllite 数据库 private void button3_Click(object send
16、er, EventArgs e) DisplayImages imageform = new DisplayImages(); imageform.StartPosition = FormStartPosition.CenterScreen; imageform.Show(); #endregion 4.将数据库内容导出为excel #region 导出 excel private void button5_Click(object sender, EventArgs e) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精
17、心整理 - - - - - - - 第 6 页,共 21 页 - - - - - - - - - string filename = ; string savefilename = ; SaveFileDialog savedig = new SaveFileDialog(); savedig.DefaultExt = xlsx; savedig.Filter = Excel文件|*.xlsx; savedig.FileName = filename; savedig.ShowDialog(); savefilename = savedig.FileName; if (savefilename
18、.IndexOf(:) 0) return; Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); if (xlApp = null) MessageBox.Show( 无法创建 excel对象,请确认 excel环境是否正常 ); return; Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks; Microsoft.Office.Interop.Excel.
19、Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets1;/ 取得 sheet1 /写入标题 for (int i = 0; i dataGridView1.ColumnCount; i+) worksheet.Cells1, i
20、+ 1 = dataGridView1.Columnsi.HeaderText; /写入数值 for (int r = 0; r dataGridView1.Rows.Count; r+) for (int i = 0; i dataGridView1.ColumnCount; i+) worksheet.Cellsr + 2, i + 1 = dataGridView1.Rowsr.Cellsi.Value; System.Windows.Forms.Application.DoEvents(); worksheet.Columns.EntireColumn.AutoFit();/列宽自适应
21、 MessageBox.Show(filename + 导出文件成功 , 提示, MessageBoxButtons.OK); if (savefilename != ) try 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 21 页 - - - - - - - - - workbook.Saved = true; workbook.SaveCopyAs(savefilename); /fileSaved = true; catch (Exception ex) /fi
22、leSaved = false; MessageBox.Show( 导出文件时出错 ,文件可能正被打开! n + ex.Message); xlApp.Quit(); GC.Collect();/强行销毁 #endregion 完整代码如下:1. form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using Syste
23、m.Windows.Forms; using System.Data.SqlClient; using System.IO; using System.Data.OleDb; using Kribo.StoringImages; using excel = Microsoft.Office.Interop.Excel; namespace dbtest public partial class Form1 : Form #region 定义变量 /连接成功标志 public bool linkflag=false; /存储连接 sql 的数据 public string connectstri
24、ng = ; /连接数据库表的命令 public string commandstring = ; string sqlnameip, sqldb, sqluid, sqlpwd; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 21 页 - - - - - - - - - /dateset是一个可以存放多个表的集合,查询结果会以表的形式保存在里面需要 using system.data.sqlclient; DataSet ds = new DataSet(); /一个
25、 DataTable就是一个表,等会用来获取查询的结果 DataTable dt = new DataTable(); /SELECT * FROM sysobjects WHERE (xtype = U) 查看数据库中有多少个表 /查看所有数据库 :select name from sys.databases int recordcount = 1000; / 每次读取 1000条记录 SQLbase datacon = new SQLbase();/ 声明 sqlbase类的一个对象,以调用其方法 struct recordstru / 数据库 记录集合 public string rec
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C#编写数据库连接测试事例知识讲解 2022 C# 编写 数据库连接 测试 事例 知识 讲解
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内