WinForm连接SQL server数据库

本文章参考了课本以及上课时的代码,如果有错误的地方麻烦各位指正


ADO.NET

微软公司在.NET编程环境中优先使用的数据访问接口ADO.NET提供了平台互用性和可伸缩的数据访问

.NET Framework数据提供程序包含以下4个核心类 :
(1)Connection:建立与数据源的连接
(2)Command:对数据源执行操作命令,用于修改数据,查询数据,运行存储过程等
(3)DataReader:从数据源获取只读只进的数据流
(4)DataAdaper:用数据源数据填充DataSet,并可以处理数据更新

DataSet是ADO.NET的断开式结构的核心组件。DataSet是数据表的集合,包含任意多个数据表.


提示:以下是本篇文章正文内容,下面案例可供参考

一、使用Connection对象连接数据库

1.构造方法(使用一个参数的)

Connection(ConnectionString):ConnectionString是连接字符串,连接字符串的参数主要包括服务器、数据库用户名、数据库密码、数据库名

2.方法

方法名称介绍
open()打开数据库
close()关闭数据库

构造连接字符串有以下两种方法(1.直接构造 2.在配置文件中存储连接字符串)

接下来以直接构造为例子

直接构造,格式如下:
SqlConnection conn=new SqlConnection(“server=服务器名称;database=数据库名称;uid=登录数据库的用户名;pwd=登录数据库的密码;”);

	//打开数据源
    SqlConnection conn=new SqlConnection("server=.;database=FrmManeger;uid=sa;pwd=123456;");
    //打开连接
    conn.Open();

二、使用Command对象执行数据库命令

1.构造方法

Command(CommandText,Connection):CommandText是要执行的SQL命令;Connection为使用的数据连接对象

2.方法

方法名称介绍
ExecuteNonQuery()返回的是被影响的行数(整数),一般在修改时使用,不会造成内存泄漏
ExecuteReader()返回的是MySqlDataReader对象
	//写法一:
	SqlCommand cmd = new SqlCommand();
	cmd.CommandText = "select * from UsersTable where username=@username and password=@pwd";
	cmd.Connection = conn;

	//写法二:
	SqlCommand cmd = new SqlCommand("select * from UsersTable where username=@username and password=@pwd",conn);

三、使用DataAdaper对象执行数据库命令

DataAdaper用来连接数据源与数据集DataSet
在一个DataSet对象实例中,可以包含多个DataTable,而一个DataTable可以包含多个DataRow

DataAdaper对象的方法

方法名称介绍
Fill()用于将数据源的查询结果添加到数据集
Updata()用于将数据集中的数据存储到数据源中
	//SqlDataAdapter用于连接数据源和数据集DataSet
	SqlDataAdapter sda = new SqlDataAdapter();
	sda.SelectCommand = cmd;
	DataSet ds = new DataSet();
	//查询语句返回的值临时表名为logintable 
	sda.Fill(ds,"logintable");

四、使用DataReader对象执行数据库命令

DataReader对象允许你以向前的,只读的方式读取数据,有时候DataReader对象也称为消软管游标
若要创建 SqlDataReader ,必须调用SqlCommand 对象的 ExecuteReader 方法 ,而不是直接使用构造函数

DataReader对象的方法

方法名称介绍
Close()关闭 DbDataReader 对象
Read()让 SqlDataReader 前进到下一条记录
	SqlCommand cmd = new SqlCommand("select * from UsersTable where username=@username and password=@pwd",conn);
	//创建 SqlDataReader ,必须调用SqlCommand 对象的 ExecuteReader 方法 
	SqlDataReader sdr = cmd.ExecuteReader();

五、使用SqlParameter将查询条件参数化

为避免SQL注入,提高代码安全性,使用SqlParameter可以实现SQl语句参数的动态添加。

//写法一:
string str="select * from UsersTable where username=@username and password=@pwd";

SqlParameter[] sqlParameters =
	{
		new SqlParameter("@username",this.txtusername.Text),
		new SqlParameter("@pwd",this.txtpwd.Text)
	};

if(sqlParameters!=null){
	//将参数添加到SQL执行命令
	cmd.Parameters.AddRange(sqlParameters);
	}
	
//写法二:
string str="select * from UsersTable where username=@username and password=@pwd";

SqlParameter Parameters1 =new SqlParameter("@username",this.txtusername.Text);
SqlParameter Parameters2 =new SqlParameter("@pwd",this.txtpwd.Text);

//将参数添加到SQL执行命令
cmd.Parameters.Add(Parameters1);
cmd.Parameters.Add(Parameters2);


总结

这里对以上的代码进行简单的整理(除去DataReader部分)

1.无参数传递

	//打开数据源
    SqlConnection conn=new SqlConnection("server=.;database=FrmManeger;uid=sa;pwd=123456;");
    //打开连接
    conn.Open();
    //操作命令
    SqlCommand cmd = new SqlCommand();
	cmd.CommandText = "select * from UsersTable where username='admin' and password='123'";
	cmd.Connection = conn;
	//SqlDataAdapter用于连接数据源和数据集DataSet
	SqlDataAdapter sda = new SqlDataAdapter();
	sda.SelectCommand = cmd;
	DataSet ds = new DataSet();
	//查询语句返回的值临时表名为logintable 
	sda.Fill(ds,"logintable");
	//这一步骤是将查询出来的结果显示在dataGridView控件上
	dataGridView1.DataSource = ds.Tables[0];
	//关闭数据库
	conn.Close();
	

2.参数化传递

	//打开数据源
    SqlConnection conn=new SqlConnection("server=.;database=FrmManeger;uid=sa;pwd=123456;");
    //打开连接
    conn.Open();
    //操作命令
    SqlCommand cmd = new SqlCommand();
	cmd.Connection = conn;
	string str="select * from UsersTable where username=@username and password=@pwd";
	SqlParameter[] sqlParameters =
	{
		new SqlParameter("@username",this.txtusername.Text),
		new SqlParameter("@pwd",this.txtpwd.Text)
	};

	if(sqlParameters!=null){
		//将参数添加到SQL执行命令
		cmd.Parameters.AddRange(sqlParameters);
	}
	
	cmd.CommandText = str;
	//SqlDataAdapter用于连接数据源和数据集DataSet
	SqlDataAdapter sda = new SqlDataAdapter(cmd);
	DataSet ds = new DataSet();
	//查询语句返回的值临时表名为logintable 
	sda.Fill(ds,"logintable");
	//这一步骤是将查询出来的结果显示在dataGridView控件上
	dataGridView1.DataSource = ds.Tables[0];
	//关闭数据库
	conn.Close();

当某个代码实现的功能要重复使用时,可以进行代码的封装

窗体的代码
这里我新建了一个SqlHelper类,将代码封装进去,调用SqlHelper类的方法来实现这些功能
这里我新建了一个类,将代码封装进去,调用那个类名的方法来实现这些功能

  • 27
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用WinForm连接SQL Server数据库和查看数据的步骤如下: 1. 引入需要的命名空间:`using System.Data.SqlClient;` 2. 创建数据库连接字符串:`string connectionString = "Data Source=数据库服务器名称;Initial Catalog=数据库名称;User ID=用户名;Password=密码";` 3. 创建SqlConnection对象并打开连接:`SqlConnection connection = new SqlConnection(connectionString); connection.Open();` 4. 编写SQL查询语句:`string query = "SELECT * FROM 表名";` 5. 创建SqlCommand对象并为其设置连接和查询语句:`SqlCommand command = new SqlCommand(query, connection);` 6. 创建SqlDataReader对象并使用ExecuteReader方法执行查询:`SqlDataReader reader = command.ExecuteReader();` 7. 使用while循环遍历SqlDataReader对象中的数据:`while (reader.Read()) { // 操作读取到的数据 }` 8. 在循环中,通过reader对象的GetInt32、GetString等方法获取每列的数据,并进行相应的操作:`int id = reader.GetInt32(0); string name = reader.GetString(1);` 9. 关闭reader和连接对象:`reader.Close(); connection.Close();` 10. 将获取到的数据展示在WinForm窗口上,可以使用DataGridView控件或自定义控件进行展示。 以上就是使用WinForm连接SQL Server数据库并查看数据的基本步骤。需要注意的是,连接字符串中的数据库服务器名称、数据库名称、用户名和密码需要根据实际情况进行修改。同时,为了防止SQL注入攻击,建议使用参数化查询来替代拼接查询语句。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值