首先来总结一下进行数据库编程的全过程,这里用的是SQL SERVER

(1) 建立SqlConnection对象以连接数据库

SqlConnection mysqlconnection=new SqlConnection("Server=localhost; database=yourdatabase;uid=sa;pwd=sa");

(2) 建立SqlCommand对象

SqlCommand mysqlcommand=mysqlconnection.CreateCommand();

(3) 设置SqlCommand对象的CommandText属性

mysqlcommand.CommandText="SELECT * FROM youydatabasetablename";

(4) 打开SqlConnection对象

mysqlconnection.open();

(5) 运行SELECT语句

SqlDataReader mysqldatareader=mysqlcommand.ExecuteReader();

本人初学,此处疑惑,还望高手解答:

此处没有SqlDataReader mysqldatareader=new SqlDataReader();而是直接执行,可以吗?

如果没有new创建对象,后面的(8)mysqldatareader.Close(); 需要关闭吗?谢谢高人解答!!!

(6) 用SqlDataReader对象读行

mysqldatareader.Read();

(7) 显示SqlDataReader对象中的数值

yourtextbox.Text=mysqldatareader["ID"].ToString();      //ID是你数据库中的一项列名

(8) 关闭SqlDataReader对象

mysqldatareader.Close();

本人初学,此处疑惑,还望高手解答:

需要关闭mysqlcommand吗  即mysqlcommand.Close() 还是因为调用了CreateCommand()方法而不需要关闭吗?

(9) 关闭SqlConnection对象

mysqlconnection.Close();

下面把过程呈现出来.

1、在我的程序中用的是SQL,所以在程序头前加上

using System.Data.SqlClient;

2、在Form1中加入应有的控件,用于显示数据.

3、申请变量

static private int m = 1;  //显示每条记录

static private int k;        //得到记录条数

SqlCommand mysqlcommand;

SqlConnection mysqlconnection;

4、连接数据库,注意这里的连接字符串,用的是安全类型.

try

{

mysqlconnection = new SqlConnection("server=localhost;

Integrated Security=True;Database=myfriends");

mysqlcommand = mysqlconnection.CreateCommand();

//得到记录条数

mysqlcommand.CommandText = "SELECT COUNT(*) FROM Friends";

mysqlconnection.Open();

k = (int)mysqlcommand.ExecuteScalar();

GetData(1);

}

catch (SqlException ex)

{

MessageBox.Show("A SqlException was thrown,Number = " +

ex.Number +     //错误号

ex.Message +    //错误描述字符串

ex.StackTrace); //抛出异常的类名和方法名字符串

}

5、如果数据库中有多条记录就要逐条显示

在逐条显示的按钮事件中:

m += 1;   //下一条索引值

if (m > k)

{

MessageBox.Show("最后一条!将显示第一条记录!", "信息提示");

m = 1;

}

this.hisname.Text = "";   //要显示下条,当然先清空

this.hissex.Text = "";

this.hisadress.Text = "";

this.hisbirthday.Text = "";

GetData(m);  //显示下第数据

6、在显示数据中用到显示下一条函数;

private void GetData(int i)

{

mysqlcommand.CommandText = "SELECT ID,Name,Sex,"+  "birthday,address FROM Friends WHERE ID="+i;

SqlDataReader mysqldatareader = mysqlcommand.ExecuteReader();

mysqldatareader.Read();

this.hisname.Text = mysqldatareader["Name"].ToString();

this.hissex.Text = mysqldatareader["Sex"].ToString();

this.hisadress.Text = mysqldatareader["Address"].ToString();

this.hisbirthday.Text = mysqldatareader["Birthday"].ToString();

mysqldatareader.Close();

}

转载声明:本帖转自 http://www.cnblogs.com/bober/articles/640740.html

转载于:https://www.cnblogs.com/wdpp/archive/2009/08/06/2387047.html

C#连接数据库SQL(2005)相关推荐

  1. PDA连接远程SQL 2005数据库

    最近因为项目里面需要用到一个使用PDA连接远程SQL 2005数据库,进行数据操作的功能,程序DeBug下的exe文件可以正常连接数据库及相关的数据操作,但是只要一部署到PDA上面就提示 无法找到 D ...

  2. 在SQL 2005中用T-SQL插入中文数据时出现的问号或乱码的解决方案[转]

    在SQL 2005中用T-SQL插入中文数据时出现的问号或乱码的解决方案 病症表现为:主要表现为用T-sql语句插入中文数据时数据库显示全是问号"???"  解决办法: 第一种办法 ...

  3. SQL 2005新增的几个函数之学习

    sqlserver 2005新增函数学习(转载) 原文:SQL 2005新增的几个函数之学习 今天学习了sql server 2005新增的几个函数,分别是row_number(),rank,DENS ...

  4. sql 2005学习笔记1

    sql 2005学习笔记1 最近开始看赵松涛的<SQL 2005数据奥秘>,发现是本十分不错的独特的SQL 2005的书,讲了很多深入的东西,现学习之并每次笔记要点之. 1 SQL 200 ...

  5. SQL 2005完全卸载,重新安装

    1.Stop 所有服务 2.用 Windows Install Clean Up 工具卸载SQL 2005组件 3.用SrvInstw.exe删除所有SQL服务 4.清除注册表 a. 将HKEY_CU ...

  6. SQL 2005 Oct CTP 和VS2005 for CTP安装的情况

    October CTP release of Sql Server 2005 Installation issues and resolution http://weblogs.asp.net/wal ...

  7. SQL 2005启用组件Ad Hoc Distributed Queries

    转载 SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作 ...

  8. 在已有SQL 2005 Server 群集中添加节点

    在已有SQL 2005 Server 群集中添加节点 在SQL群集中一个节点不可用后,需要重新安装操作系统,然后再进行群集节点恢复工作.其基本操作流程如下: 1. 在正常可用的节点上打开群集管理器,进 ...

  9. SQL 2005清除事务日志

    SQL 2005清除事务日志 DUMP TRANSACTION 数据库名称 WITH  NO_LOG BACKUP LOG 数据库名称 WITH NO_LOG DBCC SHRINKDATABASE( ...

最新文章

  1. 关于Jenkins部署代码权限三种方案
  2. Oracle存储过程创建及调用(转)
  3. 机器学习笔记——K-means
  4. 『Go 语言底层原理剖析』文末送书
  5. 动态网页开发技术(一):Servlet
  6. [译]使用asp.net mvc 的工具提示
  7. android 字符串转字节数组,java – 在Android中将字节数组转换为Charsequence
  8. linux系统取代windows,Linux不可能取代Windows
  9. dell装双系统linux系统,记录DELL灵越7590/7591安装Ubuntu+Win10双系统
  10. OSChina 周五乱弹 —— 你用学习机来搞学习?
  11. 20120321java
  12. DataParallel使用
  13. 闲谈Python语言入门
  14. FPGA驱动步进电机
  15. 计算机音乐演奏jojo,【FF14】诗人演奏用 il vento d'oro(动画《JOJO的奇妙冒险 黄金之风》插曲)...
  16. DELL win10插入耳机后声音仍然外放(亲测有效)
  17. ping服务器时显示的ttl是什么意思,ping命令显示的TTL是什么意思?
  18. pycharm双击打不开,没有反应,下列方法亲测有用!
  19. Python Revisited Day 08 (高级程序设计技术)
  20. Bat(批处理)文件编写手册(一)

热门文章

  1. css动画详解 (transition animation)
  2. ZeroC ICE的远程调用框架 ASM与defaultServant,ServantLocator
  3. 影响中国历史的十篇政治美文
  4. IP过滤-驱动和应用程序通信
  5. redis出现过多command 慢查询slowlog出现command命令
  6. javascript基本函数
  7. 「声明」本博客自动采集于博客园-niceyoo
  8. RedisTemplate在项目中的应用
  9. Oracle不连续的值,如何实现查找上一条、下一条
  10. 我的虚拟化设想(My virtualization vision)