欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年C#编写数据库连接测试事例知识讲解 .pdf

    • 资源ID:34883265       资源大小:229.01KB        全文页数:21页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年C#编写数据库连接测试事例知识讲解 .pdf

    C#编 写 数 据 库 连 接 测试 事 例名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 21 页 - - - - - - - - - C#实现数据库测试1.实现 sqlserver2000 的数据读取如图所示:可以通过连接数据库sql-选择数据库 -选择表来完成; #region连 ?接 ? 数o y据Y库a privatevoid button1_Click(object sender, EventArgs e) initdb(textBox1.Text, textBox2.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, EventArgs 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, s1,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) /如果数据库名称为空,返回数据库的所有名称; 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 很强大,与数据库的交互就靠它来实现的 /在初始化时把sqlCommand,connString 传入设计好的构造器 SqlDataAdapter Adapter = new SqlDataAdapter(commandstring, connectstring); /将参数加入到Adapter 中 Adapter.SelectCommand.Parameters.AddRange(parameters); /这句话就是集执行查询和保存功能于一体的核心语句了 /简单来说就是执行了sqlCommand 里的查询语句,并且把结果以表的形式存在了ds 里面 ds.Clear(); dt.Clear(); Adapter.Fill(ds); /把 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, 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 sysobjects 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, connectstring); /将参数加入到Adapter 中名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 21 页 - - - - - - - - - Adapter.SelectCommand.Parameters.AddRange(parameters); /这句话就是集执行查询和保存功能于一体的核心语句了 /简单来说就是执行了sqlCommand 里的查询语句,并且把结果以表的形式存在了ds 里面 ds.Clear(); dt.Clear(); Adapter.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.Clear(); 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 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 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; 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(); / 定义 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 sender, 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) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 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.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.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 + 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();/列宽自适应 MessageBox.Show(filename + 导出文件成功 , 提示, MessageBoxButtons.OK); if (savefilename != ) try 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 21 页 - - - - - - - - - workbook.Saved = true; workbook.SaveCopyAs(savefilename); /fileSaved = true; catch (Exception ex) /fileSaved = 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 System.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 connectstring = ; /连接数据库表的命令 public string commandstring = ; string sqlnameip, sqldb, sqluid, sqlpwd; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 21 页 - - - - - - - - - /dateset是一个可以存放多个表的集合,查询结果会以表的形式保存在里面需要 using system.data.sqlclient; DataSet ds = new DataSet(); /一个 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 recordname; public recordstru(int num) recordname = new stringnum; ; #endregion #region 初始化控件 public Form1() InitializeComponent(); #endregion #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) /如果数据库名称为空,返回数据库的所有名称; if (dbname = ) connectstring = server = + sqlname + ;database=master;uid=sa;pwd=; commandstring = select name from sysdatabases; try 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 21 页 - - - - - - - - - string yg_code = 1; /这里是定义了一个参数数组,不过里面就一条参数 SqlParameter parameters = new SqlParameter(yh_code, yg_code) ; /这个 SqlDataAdapter很强大,与数据库的交互就靠它来实现的 /在初始化时把 sqlCommand,connString传入设计好的构造器 SqlDataAdapter Adapter = new SqlDataAdapter(commandstring, connectstring); /将参数加入到 Adapter中 Adapter.SelectCommand.Parameters.AddRange(parameters); /这句话就是集执行查询和保存功能于一体的核心语句了 /简单来说就是执行了sqlCommand里的查询语句,并且把结果以表的形式存在了 ds里面 ds.Clear(); dt.Clear(); Adapter.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; while (i+ rows) listBox1.Items.Add(dt.Rowsi0.ToString(); catch (Exception ex) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 21 页 - - - - - - - - - Console.WriteLine(ex.Message); else connectstring = server =+sqlname+;database=+dbname+;uid=sa;pwd=; if(bz=0) commandstring = SELECT * FROM sysobjects 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, connectstring); /将参数加入到 Adapter中 Adapter.SelectCommand.Parameters.AddRange(parameters); /这句话就是集执行查询和保存功能于一体的核心语句了 /简单来说就是执行了sqlCommand里的查询语句,并且把结果以表的形式存在了 ds里面 ds.Clear(); dt.Clear(); Adapter.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); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 21 页 - - - - - - - - - string tmp = ; int i = 0; listBox2.Items.Clear(); while (i+ rows) tmp = ; listBox2.Items.Add(dt.Rowsi0.ToString(); /Console.WriteLine(dt.Rowsi0.ToString(); catch (Exception ex) return false; #endregion #region 打开数据库表 public string open_table(string sqlname/*sqlserver ip */, string dbname /*database name */, string tablename,string bz/*0- 表头, 1-表的内容 */) string retstr = ; /dataGridView1.DataSource = ; DataSet ds1 = new DataSet(); /一个 DataTable就是一个表,等会用来获取查询的结果 DataTable dt1 = new DataTable(); connectstring = server = + sqlname + ;database= + dbname + ;uid=sa;pwd=; if(bz!= ) commandstring = bz+tablename; else commandstring = SELECT name FROM syscolumns WHERE (id = OBJECT_ID(+tablename + ); try string yg_code = 1; /这里是定义了一个参数数组,不过里面就一条参数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 21 页 - - - - - - - - - SqlParameter parameters = new SqlParameter(yh_code, yg_code) ; /这个 SqlDataAdapter很强大,与数据库的交互就靠它来实现的 /在初始化时把 sqlCommand,connString传入设计好的构造器 SqlDataAdapter Adapter = new SqlDataAdapter(commandstring, connectstring); /将参数加入到 Adapter 中 Adapter.SelectCommand.Parameters.AddRange(parameters); /这句话就是集执行查询和保存功能于一体的核心语句了 /简单来说就是执行了sqlCommand里的查询语句,并且把结果以表的形式存在了 ds里面 ds1.Clear(); dt1.Clear(); Adapter.Fill(ds1); /把 ds表集合里的第一个表复制给dt dt1 = ds1.Tables0; /dr.Close();/关闭执行 /con.Close();/ 关闭数据库 int count = dt1.Columns.Count;/ 一条记录包含的列数; int rows = dt1.Rows.Count;/ 记录个数 /Console.WriteLine(查找到记录个数: 0, 每条记录有 1 个字段 , rows, count); recordstru myrec = new recordstru(1000); string tmp = ; int i = 0; if(bz!= ) for (i = 0; i rows; i+) dataGridView1.Rows.Add(); dataGridView1.AutoResizeColumns(); this.dataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText; dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.LemonChiffon;/ 奇数行背景色 dataGridView1.BackgroundColor = Color.White;/控件背景色 /填充数据 for (i = 0; i rows; i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 21 页 - - - - - - - - - for (int k = 0; k count; k+) dataGridView1.Rowsi.Cellsk.Value = dt1.Rowsik.ToString(); /Console.WriteLine(dt1.Rowsik.ToString(); dataGridView1.Rowsi.HeaderCell.Value = i.ToString(G5); dataGridView1.RowHeadersWidth = 60; return ; /dataGridView1.AutoResizeColumns(); else /根据返回结果首先初始化表格控件 dataGridView1.ColumnCount = rows; dataGridView1.Rows.Clear(); for (i = 0; i rows; i+) dataGridView1.Columnsi.Name = dt1.Rowsi0.ToString(); /Console.WriteLine(dt1.Rowsi0.ToString(); retstr = retstr + dt1.Rowsi0.ToString() + ,; retstr = retstr.Substring(0,retstr.Length - 1); return select + retstr + from ; / catch (Exception ex) return ; #endregion #region 读取选择的数据库,将数据库中包含的表加入到listbox2 中 private void listBox1_DoubleClick(object sender, EventArgs e) string s = ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 21 页 - - - - - - - - - s = listBox1.SelectedItem.ToString(); initdb(textBox1.Text, s,0); #endregion #region 连接数据库 private void button1_Click(object sender, EventArgs e) initdb(textBox1.Text, textBox2.Text.ToString(),0); #endregion #region 读取某表的内容 private void listBox2_DoubleClick(object sender, EventArgs e) string s = ; string s1 = ; s = listBox1.SelectedItem.ToString(); s1 = listBox2.SelectedItem.ToString(); string retstr = open_table(textBox1.Text, s, s1, ); open_table(textBox1.Text, s, s1,retstr); #endregion #region 读取 access 数据库 private void button2_Click(object sender, EventArgs e) try 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; Data Source = + mypath; /生成连接数据库字符串 OleDbConnection mycon = new OleDbConnection(constr); / 定义OleDbConnection对象实例并连接数据库名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 21 页 - - - - - - - - - string mysql = select * from mytable; /Sql查询语句 OleDbDataAdapter myada = new OleDbDataAdapter(mysql, mycon); /定义 OleDbDataAdapter对象实例并连接数据库表 DataSet myds = new DataSet(); / 定义 DataSet对象实例 myada.Fill(myds); / 填充数据集 dataGridView1.DataSource = myds.Tables0.DefaultView; / 连接数据表格,显示数据 mycon.Close(); / 关闭 OleDbConnection对象实例 mycon.Dispose(); / 释放 OleDbConnection对象实例所占资源空间 catch return; #endregion #region 连接 sqllite 数据库 private void button3_Click(object sender, EventArgs e) DisplayImages imageform = new DisplayImages(); imageform.StartPosition = FormStartPosition.CenterScreen; imageform.Show(); #endregion #region 使用 sqlbase 类,访问 sql数据库 private void button4_Click(object sender, EventArgs e) /* /使用 getds 访问表的数据; DataSet myds = datacon.getds(select * from 遥测参数表 ,遥测参数表 ); /数据存在 myds.table0 int count = myds.Tables.Count; dataGridView1.DataSource = myds.Tables0; dt = myds.Tables0; /下面可以使用 dtik 来得到具体的数据; /使用 getcom 执行语句 datacon.getcom(update 厂站参数表 set 事故总标志 =0 ); */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -

    注意事项

    本文(2022年C#编写数据库连接测试事例知识讲解 .pdf)为本站会员(Che****ry)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开