C#制作一个对服务器表单数据进行增改删查的GUI

本文介绍了如何使用C#通过Socket连接SQL Server进行数据收发,包括启用TCP/IP,创建数据库表,填充数据,以及执行SQL命令。还展示了如何在C#中编写代码连接数据库,使用SqlCommand发送查询,并在DataGridView中显示数据。此外,文中给出了用户登录检查的示例,展示了该框架的其他应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所用到工具

SSMS(SQL数据库管理工具 )
在这里插入图片描述
SQL Server Management Studio (SSMS)是一款可视化管理SQL数据库的工具,可以在客户端的电脑进行SQL数据库的配置,监视,进行数据库的脚本查询等。下载链接
Visual Studio
在这里插入图片描述
这个不用多说,C#编码工具。下载链接

序言

突发奇想,想做一个能快速查看或者更改MES上数据的桌面应用程序。也是因为自己在工作中也有接触到这一需求,刚好最近在学习C#和SQL,顺手把他当作一个项目制作一下吧。练练手,本人比较新手,请多多谏言。

C#相关命名空间及SQL项目配置

using System.Data;
using System.Data.SqlClient;

下面是服务器的配置
在这里插入图片描述
这里在本地建立一个服务器,服务器名称可以选择本地账户名或者ip地址(本地)+端口号的形式
注意: 如果要使用ip地址连接的话,要到电脑的SQL配置里面启用TCP/IP协议,默认是关闭的,方法如下图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
TCP/IP协议这里需要配置ip地址的端口号,端口号建议配置50000后(刚开始的时候连接不上很大可能就是端口被占用了,范围0~65535),地址就按本地的配置,如果有服务器的话就配置服务器的地址
在这里插入图片描述
如果单单是电脑启用SQL的话,在电脑服务里面找也可在这里插入图片描述

配置完成后点击连接,如下图在这里插入图片描述

配置服务器的数据格式

建表

逐一打开目录,在默认自带的DEMO服务器下的“表”文件夹,建立一个新表
在这里插入图片描述
然后建立右边数据,这里数据类型繁杂冗长,具体可以百度,当然这里的数据也不是固定的,这里仅供本例使用
记得要保存,不然这个表只能看,不能用

给表填写一些初始数据

在这里插入图片描述

建立查表

可以通过建立查询来检验数据是否符合要求在这里插入图片描述

查询
earphone即是要进行操作的表名
所有语句后的where作用在这里都是进行条件限定(查找的特征)
在这里插入图片描述

插入/增加
values里面包括表里一行所需的所有数据,少一个都不行

insert into earphone values('VIVO','111222','TWS','Vietnam','Black','2021-6-5')

更新/更改
set即是要更改的参数项

update earphone set color='pink' where barcode='111222'

删除

delete from earphone where product='111222'

C#代码编写

这里建立一个与服务器通讯的类,这样可以方便调用并且更加规范化

连接

        public SqlConnection connect()
        {
            string link_key = "Data Source=192.168.0.103,1433\\SQLEXPRESS;Initial Catalog=Demo;Integrated Security=True";
            SqlConnection sqlConnection = new SqlConnection(link_key);
            sqlConnection.Open();//连接
            return sqlConnection;
        }

这里的link_key 是要提供的数据源,可在这里得知,如下图,需要在软件菜单-工具-连接数据库中弹出以下窗口
在这里插入图片描述
关于这一行的具体解释如下

Data Source=192.168.1.110,1433\SQLEXPRESS;Initial Catalog=Demo;Integrated Security=True

Data Source 是数据源;
Initial Catalog是数据库的名称;
integrated security=true表示可以在不知道数据库用户名和密码的情况下时,依然可以连接数据库
integrated security=false,或者不写,表示一定要输入正确的数据库登录名和密码。
具体配置可看(来自网友)》connectionstring配置

命令的发送

        public SqlCommand send_cmd(string cmdText)
        {
            SqlCommand sqlCommand = new SqlCommand(cmdText, connect());
            return sqlCommand;
        }

        //用于update,delete,insert,返回受影响的行数
        public int execute(string cmdText)
        {
            return send_cmd(cmdText).ExecuteNonQuery();
        }

        //用于select读取,返回SqlDataReader对象,其中包含select的数据
        public SqlDataReader read(string cmdText)
        {
            return send_cmd(cmdText).ExecuteReader();
        }

其中,对数据的读取有一点不同,获得的对象需要用IDataReader 类型来接收

IDataReader dr = server.read(cmd);

对于这个IDataReader 和其他方法的解释,请看大佬>理解ASP.NET的IDataReader

窗口代码

DataGridView控件显示数据

主要代码

        private void data_form_Load(object sender, EventArgs e)
        {
            sql server = new sql();
            string cmd = "select * from earphone";
            IDataReader dr = server.read(cmd);
            int index = 0;
            while (dr.Read())//如果存在更多行,则为 true;否则为 false。
            {   
                string barcode = dr["barcode"].ToString();
                string type = dr["type"].ToString();
                string product = dr["product"].ToString();
                string export_area = dr["export_area"].ToString();
                string color = dr["color"].ToString();
                string date = dr["date"].ToString();
                string[] row = { product, barcode, type, export_area, color, date };
                
                dataGridView1.Rows.Add(row);
                index++;
            }
            
        }

在这里插入图片描述

其他应用

还可以用这个框架做一个用户登录检查的程序,如下

在这里插入图片描述

private void button1_Click(object sender, EventArgs e)
        {
            if (tb_user.Text == "" || tb_password.Text == "")
            {
                MessageBox.Show("输入不正确,请检查", "登录失败", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                sql server = new sql();
                string cmd = "select * from users where [user]='" + this.tb_user.Text + "' and password='" + this.tb_password.Text + "'";
                IDataReader login = server.read(cmd);
                if (login.Read())//如果存在更多行,则为 true;否则为 false。如果输入的用户名和密码都存在于数据库上,并且是同一条数据就认为登录成功
                {
                    this.Hide();
                    new Main().Show();
                }
            }
        }

跟之前一样方法建立一个储存账户信息的表
在这里插入图片描述

总结

写博客一是为了分享知识,二是为了巩固知识,教学相长。
同时谢谢各位能看到末尾!感谢!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值