您的位置:首页 > 文旅 > 美景 > 包装设计概念_企业信用信息公示系统(全国)官网_优化网站的软件下载_软文写作

包装设计概念_企业信用信息公示系统(全国)官网_优化网站的软件下载_软文写作

2025/5/7 15:26:18 来源:https://blog.csdn.net/qq_73252299/article/details/147012277  浏览:    关键词:包装设计概念_企业信用信息公示系统(全国)官网_优化网站的软件下载_软文写作
包装设计概念_企业信用信息公示系统(全国)官网_优化网站的软件下载_软文写作

引言

        今天尝试Visual Studio 2022 NET开发一个NET桌面软件,并尝试连接SQL Server的数据库,此文章为开发笔记。

---------------------------------------------------------------------------------------------------------------------------------

一,创建项目

1,VS配置项目基础环境

创建新项目

2,创建Git仓库

访问>>>>Gitee<<<<

创建仓库(建议创建开源仓库,以供大家学习参考)

复制这个链接

回到VS2022,点击Git更改,创建Git仓库

点保存

配置完成。

返回仓库:查看已经更新。

添加开源许可证为Apache2.0

提交即可:

完成

---------------------------------------------------------------------------------------------------------------------------------

二,设计窗体与数据源绑定

使用的组件有:Label,DataGridView

先添加Label文字组件,然后添加DataGridView数据组件

1,绑定数据源

选择添加数据源:

选择添加数据库:

        此处选择已经安装好的SQL Server 数据库,添加好数据,添加教程,并勾选显示将保存在应用程序中的连接字符串选项

Data Source=UNIX-OS;Initial Catalog=bigdata;Integrated Security=True;Encrypt=True;Trust Server Certificate=True

选择数据源

选择需要显示的表和字段

点完成

调整窗体设计:

选择启动,即可显示:

数据链接完成。

3,分割项目代码版本

ctrl+s保存当前工程,选择git更改

消息内容:绑定数据源

点击更改数右边的+号,全部添加,如有未保存的点击保存即可。

点击提交临时数据

点此上传图标

推送完成

---------------------------------------------------------------------------------------------------------------------------------

三,添加公共控件

此阶段将添加公共控件用于支持对数据表进行查询,删除,插入操作

 1,控件选择

Button单击它时引发事件  
TextBox输入文本

在视图的工具箱里选择Button和TextBox

选择Button控件,在它的属性里修改其显示文本Text修改为:查询

适当调节显示的字体属性Font参数

查看:

TextBox控件也可以通过修改字体大小调整整体的大小

2,控件功能设置

(1),查询按钮

双击进入Button查询控件,调整点击后引发的事件,编写对Button引发事件的代码

示例代码:

private void button1_Click(object sender, EventArgs e)
{// 检查输入有效性if (this.textBox1.Text == ""){// 弹出空输入提示MessageBox.Show("请输入查询内容!");}else{// 构建动态SQL查询语句(注意:存在SQL注入风险,建议使用参数化查询)// 使用LIKE进行模糊查询,%表示任意字符匹配string strsql = " SELECT * FROM table_name WHERE field_name LIKE '%" + textBox1.Text + "%' ";/* 创建数据库连接对象* 参数说明:* Data Source - 数据库服务器地址/实例名* Initial Catalog - 数据库名称* Integrated Security - 使用Windows身份验证* Encrypt - 启用加密连接* TrustServerCertificate - 信任服务器证书(开发环境常用) */SqlConnection conn = new SqlConnection("Data Source=UNIX-OS;Initial Catalog=bigdata;" + "Integrated Security=True;Encrypt=True;TrustServerCertificate=True");// 创建命令对象(关联SQL语句和数据库连接)SqlCommand cmd = new SqlCommand(strsql, conn);// 创建数据适配器(作为数据库与DataSet之间的桥梁)SqlDataAdapter da = new SqlDataAdapter(cmd);// 实例化DataSet(内存中的关系型数据容器)DataSet ds = new DataSet();try {// 打开数据库连接conn.Open();// 使用数据适配器填充DataSet// Fill方法会自动处理连接状态,如果连接未打开会自动打开da.Fill(ds);// 绑定数据到DataGridView// Tables[0] 表示DataSet中的第一个数据表dataGridView1.DataSource = ds.Tables[0];}catch (Exception ex){// 异常处理(建议记录日志或显示错误信息)MessageBox.Show("数据库操作失败: " + ex.Message);}finally{// 确保连接关闭(释放资源)if (conn.State != ConnectionState.Closed){conn.Close();}}}
}

需要修改的变量:3个

table_name表名
field_name查询字段
SqlConnection conn = new SqlConnection();SQL Server服务器连接信息,就是创建数据源时需要复制的连接字段

调整后:

代码建议:此示例代码可能有SQL注入的漏洞,仅用于开发环境使用,下提供修复后的完整代码:

private async void button1_Click(object sender, EventArgs e)
{// 输入验证if (string.IsNullOrWhiteSpace(textBox1.Text)){MessageBox.Show("请输入有效的会员卡号查询内容!", "输入提示", MessageBoxButtons.OK, MessageBoxIcon.Information);return;}try{// 使用参数化查询防止SQL注入const string query = @"SELECT * FROM huiyuan WHERE 会员卡号 LIKE @SearchTermORDER BY 会员卡号";// 使用配置文件中的连接字符串(推荐)var connectionString = "Data Source=UNIX-OS;Initial Catalog=bigdata;" +"Integrated Security=True;Encrypt=True;" +"TrustServerCertificate=True";// 使用using自动释放资源using (var conn = new SqlConnection(connectionString))using (var cmd = new SqlCommand(query, conn)){// 添加参数化查询cmd.Parameters.Add("@SearchTerm", SqlDbType.NVarChar, 50).Value = $"%{textBox1.Text.Trim()}%";// 异步操作防止界面冻结await conn.OpenAsync();var dataTable = new DataTable("Members");// 使用SqlDataReader提升性能using (var reader = await cmd.ExecuteReaderAsync()){dataTable.Load(reader);}// 显示结果if (dataTable.Rows.Count > 0){dataGridView1.DataSource = dataTable;dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells);}else{dataGridView1.DataSource = null;MessageBox.Show("未找到匹配的会员记录", "查询结果", MessageBoxButtons.OK, MessageBoxIcon.Warning);}}}catch (SqlException ex){MessageBox.Show($"数据库错误:{ex.Message}\n错误代码:{ex.Number}", "数据库异常", MessageBoxButtons.OK, MessageBoxIcon.Error);}catch (Exception ex){MessageBox.Show($"操作失败:{ex.Message}", "系统异常", MessageBoxButtons.OK, MessageBoxIcon.Error);}
}

尝试启动操作查询:

成功。开始进一步开发功能:

添加删除、插入、恢复显示的Button,只需要改一下代码的SQL语句即可。

(2),删除按钮

private async void button2_Click(object sender, EventArgs e)
{// 输入验证(删除操作需要更严格的验证)if (string.IsNullOrWhiteSpace(textBox1.Text)){MessageBox.Show("请输入有效的会员卡号!","输入提示",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}try{// 修改后的删除SQL语句(使用精确匹配)const string deleteQuery = @"DELETE FROM huiyuan WHERE 会员卡号 = @CardNo";  // 移除了ORDER BY和模糊查询var connectionString = "Data Source=UNIX-OS;Initial Catalog=bigdata;" +"Integrated Security=True;Encrypt=True;" +"TrustServerCertificate=True";using (var conn = new SqlConnection(connectionString))using (var cmd = new SqlCommand(deleteQuery, conn)){// 修改参数名称和类型(根据实际字段类型调整)cmd.Parameters.Add("@CardNo", SqlDbType.NVarChar, 100).Value = textBox1.Text.Trim();await conn.OpenAsync();// 执行删除操作(返回受影响行数)int rowsAffected = await cmd.ExecuteNonQueryAsync();// 显示操作结果if (rowsAffected > 0){MessageBox.Show($"成功删除 {rowsAffected} 条会员记录","操作成功",MessageBoxButtons.OK,MessageBoxIcon.Information);// 可选:刷新数据视图// RefreshDataGridView(); }else{MessageBox.Show("未找到匹配的会员记录","删除结果",MessageBoxButtons.OK,MessageBoxIcon.Warning);}}}catch (SqlException ex){// 特别处理外键约束等错误string errorMsg = ex.Number == 547 ? "存在关联数据,无法直接删除!" : ex.Message;MessageBox.Show($"删除失败:{errorMsg}","数据库异常",MessageBoxButtons.OK,MessageBoxIcon.Error);}catch (Exception ex){MessageBox.Show($"操作失败:{ex.Message}","系统异常",MessageBoxButtons.OK,MessageBoxIcon.Error);}
}

测试:

删除成功!

(3),添加恢复显示/重置按钮

private async void button3_Click(object sender, EventArgs e)
{try{// 修改后的查询SQL语句const string query = @"SELECT * FROM huiyuan";  // 移除了WHERE条件和参数var connectionString = "Data Source=UNIX-OS;Initial Catalog=bigdata;" +"Integrated Security=True;Encrypt=True;" +"TrustServerCertificate=True";using (var conn = new SqlConnection(connectionString))using (var cmd = new SqlCommand(query, conn)){// 移除了参数添加代码(因为不需要查询条件)await conn.OpenAsync();var dataTable = new DataTable("Clients");// 恢复使用DataReader读取数据using (var reader = await cmd.ExecuteReaderAsync()){dataTable.Load(reader);}// 显示结果if (dataTable.Rows.Count > 0){dataGridView1.DataSource = dataTable;dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells);}else{dataGridView1.DataSource = null;MessageBox.Show("客户端表无数据","查询结果",MessageBoxButtons.OK,MessageBoxIcon.Warning);}}}catch (SqlException ex){MessageBox.Show($"数据库错误:{ex.Message}","数据库异常",MessageBoxButtons.OK,MessageBoxIcon.Error);}catch (Exception ex){MessageBox.Show($"操作失败:{ex.Message}","系统异常",MessageBoxButtons.OK,MessageBoxIcon.Error);}
}

测试:

先查询后再恢复:

成功!

---------------------------------------------------------------------------------------------------------------------------------

四,配置系统主界面

1,新建Windows窗体

选择项目,右键添加,Windows窗体

在视图里的工具箱里找到MenuStrip建立菜单栏

按需输入模块

我这里直接选则buttion控件操作。

完成。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com