效果展示

 

数据库代码

  1. create database OneDb
  2. go
  3. USE OneDb;
  4. GO
  5. CREATE TABLE classify --分类表
  6. (
  7. id int primary key identity(1,1),
  8. name nvarchar(20) not null
  9. )
  10.  
  11. GO
  12. CREATE TABLE product --产品表
  13. (
  14. id int primary key identity(1,1),
  15. name nvarchar(20) not null,
  16. price decimal,
  17. number int default 0,
  18. c_id int FOREIGN KEY references classify(id)
  19. )
  20. GO
  21.  
  22. --添加分类测试数据
  23. insert into classify(name) values('图书');
  24. insert into classify(name) values('家电');
  25. insert into classify(name) values('服饰');
  26.  
  27. --添加商品测试数据
  28. insert into product(name,price,number,c_id) values('arduino基础版',168,50,1);
  29. insert into product(name,price,number,c_id) values('arduino提高版',268,50,1);
  30. insert into product(name,price,number,c_id) values('arduino至尊版',468,50,1);
  31. insert into product(name,price,number,c_id) values('比基尼',68,50,3);
  32. insert into product(name,price,number,c_id) values('虎皮裙',168,50,3);
  33. insert into product(name,price,number,c_id) values('长靴',368,50,3);
  34. insert into product(name,price,number,c_id) values('电冰箱',3268,50,2);
  35. insert into product(name,price,number,c_id) values('烘干机',2268,50,2);
  36. GO
  37.  
  38. select * from classify;
  39. go
  40. select * from product order by c_id;
  41. go

c# 代码form1.cs

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Data.SqlClient;
  10.  
  11. namespace AdoTestForm
  12. {
  13. public partial class Form1 : Form
  14. {
  15. public Form1()
  16. {
  17. InitializeComponent();
  18. }
  19.  
  20. private void Form1_Load(object sender, EventArgs e)
  21. {
  22. comboBox1.Text = "全部分类";
  23. //确定数据库连接字符串
  24. string constr = "server=QT-201303030913;database=OneDb;uid=sa;pwd=daxiang";
  25. //实例化一个数据库连接的对象
  26. SqlConnection conn = new SqlConnection(constr);
  27. //打开数据库连接
  28. conn.Open();
  29. //实例化SqlCommand对象(该对象主要用于执行Sql命令)
  30. SqlCommand cmd = new SqlCommand();
  31. //指定要执行的SQL语句或者存储过程名称
  32. cmd.CommandText = "select id,name from classify";
  33. //确定上面为CommandText类型所赋的值是SQL语句还是存储过程名称
  34. cmd.CommandType = CommandType.Text;
  35. //指定该命令所用的数据库连接
  36. cmd.Connection = conn;
  37. //声明一个SqlDataReader(数据流对象),并将cmd执行后的结果交给它
  38. SqlDataReader sdr = cmd.ExecuteReader();
  39.  
  40. //循环整个SqlDataReader对象,将里面的值取出来添加到ListBox中
  41. //sdr.Read()的作用是前进到下一条记录,这也说明SqlDataReader中的数据是一行行放置的
  42. while (sdr.Read())
  43. {
  44. //将数据流中的第一列的值添加到listBox1的项中
  45. comboBox1.Items.Add(sdr[0]+"-->"+sdr["name"]);
  46. //上面这句也可以用下面这句代替,sdr["name"]表示当前sdr的name列的值
  47. //comboBox1.Items.Add(str["name"]);
  48. }
  49. //关闭数据流
  50. sdr.Close();
  51. //关闭数据库连接
  52. conn.Close();
  53.  
  54. }
  55.  
  56. private void button1_Click(object sender, EventArgs e)
  57. {
  58. if (comboBox1.Text != "全部分类")
  59. {
  60. string constr = "server=QT-201303030913;database=OneDb;uid=sa;pwd=daxiang";
  61. //实例化一个数据库连接的对象
  62. SqlConnection conn = new SqlConnection(constr);
  63. //打开数据库连接
  64. conn.Open();
  65. //实例化SqlCommand对象(该对象主要用于执行Sql命令)
  66. SqlCommand cmd = new SqlCommand();
  67.  
  68. //获取分类的id
  69. //int i = comboBox1.Text.IndexOf("-->");//获取字符串中-->所在位置索引
  70. string id = comboBox1.Text.Substring(0, 1);//只获取-->之前的字符
  71.  
  72. //指定要执行的SQL语句和存储过程名字
  73. cmd.CommandText = "select * from product where c_id=" + id;
  74. //去顶上面的CommandText属性所赋值到底是sql还是存储过程名称
  75. cmd.CommandType = CommandType.Text;
  76. //指定该命令所用的数据库连接
  77. cmd.Connection = conn;
  78. //声明一个SqlDataReader(数据流对象),并将cmd执行后的结果交给它
  79. SqlDataReader sdr = cmd.ExecuteReader();
  80.  
  81. //清空listBox中的项
  82. listBox1.Items.Clear();
  83.  
  84. //循环整个SqlDataReader对象,将里面的值取出来添加到ListBox中
  85. //sdr.Read()的作用是前进到下一条记录,这也说明SqlDataReader中的数据是一行行放置的
  86. while (sdr.Read())
  87. {
  88. //将数据流中的第一列的值添加到listBox1的项中
  89. listBox1.Items.Add(sdr["name"]);
  90.  
  91. }
  92. //关闭数据流
  93. sdr.Close();
  94. //关闭数据库连接
  95. conn.Close();
  96. }
  97. }
  98.  
  99. private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
  100. {
  101. if (listBox1.SelectedItems.Count > 0)
  102. {
  103. string constr = "server=QT-201303030913;database=OneDb;uid=sa;pwd=daxiang";
  104. //实例化一个数据库连接的对象
  105. SqlConnection conn = new SqlConnection(constr);
  106. //打开数据库连接
  107. conn.Open();
  108. //实例化SqlCommand对象(该对象主要用于执行Sql命令)
  109. SqlCommand cmd = new SqlCommand();
  110.  
  111. //获取分类的id
  112. //int i = comboBox1.Text.IndexOf("-->");//获取字符串中-->所在位置索引
  113. string id = comboBox1.Text.Substring(0, 1);//只获取-->之前的字符
  114.  
  115. //指定要执行的SQL语句和存储过程名字
  116. cmd.CommandText = "select * from product where c_id=" + id;
  117. //去顶上面的CommandText属性所赋值到底是sql还是存储过程名称
  118. cmd.CommandType = CommandType.Text;
  119. //指定该命令所用的数据库连接
  120. cmd.Connection = conn;
  121. //声明一个SqlDataReader(数据流对象),并将cmd执行后的结果交给它
  122. SqlDataReader sdr = cmd.ExecuteReader();
  123.  
  124. //循环整个SqlDataReader对象,将里面的值取出来添加到ListBox中
  125. //sdr.Read()的作用是前进到下一条记录,这也说明SqlDataReader中的数据是一行行放置的
  126. while (sdr.Read())
  127. {
  128. if (sdr["name"].ToString() == listBox1.SelectedItem.ToString())
  129. {
  130. lbl_name.Text = sdr["name"].ToString();
  131. lbl_price.Text = sdr["price"].ToString();
  132. lbl_number.Text = sdr["number"].ToString();
  133. lbl_c_id.Text = comboBox1.Text;
  134. }
  135. }
  136. //关闭数据流
  137. sdr.Close();
  138. //关闭数据库连接
  139. conn.Close();
  140. }
  141. }
  142. }
  143. }

C#与数据库连接简单测试的更多相关文章

  1. 利用EasyMock生成数据库连接简单测试示例

    package demo.mock; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.Re ...

  2. TODO:Golang UDP连接简单测试慎用Deadline

    TODO:Golang UDP连接简单测试慎用Deadline UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interco ...

  3. .net orm比较之dapper和Entity Framework6的简单测试比较

    .net orm比较之dapper和Entity Framework6的简单测试比较

  4. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试 系列目录 我想测试EF在一百万条数据下的显示时间! ...

  5. ORACLE 数据库简单测试

    ORACLE 数据库简单测试 操作系统:Windows 7 – ORACLE:oracle database 10.2.0.4 一.目的 测试 启动监听程序.数据库  非同一个用户的情况,用户是否可以 ...

  6. Javascript的简单测试环境

    在<JavaScript忍者秘籍>2.4测试条件基础知识中,作者给出了一个精简版的assert和assert组的实现,对于初学者而言,这无疑是一个很好的例子,既让我们得到了一个好用的小工具 ...

  7. struts2+hibernate+spring注解版框架搭建以及简单测试(方便脑补)

    为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->M ...

  8. struts2+hibernate+spring配置版框架搭建以及简单测试(方便脑补)

    为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->M ...

  9. [20190423]简单测试latch nowilling等待模式.txt

    [20190423]简单测试latch nowilling等待模式.txt --//我对这个问题的理解就是如果参数willing=0,表示无法获取该latch,直接退出,再寻找类似的latch.--/ ...

随机推荐

  1. axios 处理并发请求

    //同时发起多个请求时的处理 axios.all([get1(), get2()]) .then(axios.spread(function (res1, res2) { // 只有两个请求都完成才会 ...

  2. CPC23-4-K. 喵喵的神数 (数论 Lucas定理)

    喵喵的神∙数 Time Limit: 1 Sec Memory Limit: 128 MB Description 喵喵对组合数比較感兴趣,而且对计算组合数很在行. 同一时候为了追求有后宫的素养的生活 ...

  3. jQuery.delegate() 函数详解

    delegate()函数用于为指定元素的一个或多个事件绑定事件处理函数. 此外,你还可以额外传递给事件处理函数一些所需的数据. 即使是执行delegate()函数之后新添加的元素,只要它符合条件,绑定 ...

  4. 把质量控制工作往前推进(1)——安装sonarqube

    曾经关注点一直在怎么提高应用程序的质量,没太在意代码级别的质量.近期由于某些因素的推动,须要关注到代码级别的质量去,把质量工作尽量往前推,也符合质量控制的原则.  试用了一下sonarqube(老版本 ...

  5. 去除List中重复的元素

    今天碰到一个问题,想了好久都没有明白,网上找了一个文章,先收藏起来,有空了一定要想明白 用Set ,倘若list里边的元素不是基本数据类型而是对象,那么请覆写Object的boolean equals ...

  6. NSAttributedString设置行间距,间接设置了uilabel的行间距

    假设有UIlabel实例:_testLabel NSString * testString = @"明月当空,隐隐约约听到低吟,似有若无.面对大千世界的奢华糜烂,还不如在这一方小城,静静品一 ...

  7. PHP面试题及答案解析(2)—PHP面向对象

    1. 写出 php 的 public.protected.private 三种访问控制模式的区别. public:公有,任何地方都可以访问protected:继承,只能在本类或子类中访问,在其它地方不 ...

  8. springboot学习(一) spring-boot是什么

    1.简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程. 2.主要优点 ①  使配置变得简单 ②  使编码变得简单 ③  使 ...

  9. Windows 清除系统垃圾文件

    @echo off echo 正在清除系统垃圾文件,请稍等...... del /f /s /q %systemdrive%\*.tmp del /f /s /q %systemdrive%\*._m ...

  10. ws 无法热替换的问题

    这个坑自己踩过并且第二次就记录一下,因为一直习惯用ws, 使用热部署的时候发现无法自动同步热更新,找了很多方法,具体解决方式如下: webstorm默认保存在临时文件夹,根据下面路径将默认勾选项去除即 ...