windows 开发

文章目录

环境搭建

数据库

  • 需要下载这个SQL Server数据库,然后每次Visual Studio连接的时候,需要我们本地就运行这个SQL Server
  • 视图->SQL Server 对象资源管理器

  • 对于你想要连接的数据库,属性->连接字符串

  • 然后就是去配置App.config文件

需要在现有的 app.config 文件中添加数据库连接字符串。以下是修改后的完整配置文件内容:

xml 复制代码
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
    </startup>
    <connectionStrings>
        <add name="FruitAppConnection" 
             connectionString="Data Source=GWJ;Initial Catalog=fruitapp;Integrated Security=True;Connect Timeout=30;Encrypt=False;Trust Server Certificate=True;Application Intent=ReadWrite;Multi Subnet Failover=False" 
             providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

关键修改说明:

  1. 添加 <connectionStrings> 节点:

    • 在 <configuration> 节点下新增该节点,用于存放数据库连接信息。
  2. 配置连接字符串:

    • name="FruitAppConnection":自定义连接字符串的名称,在代码中通过此名称引用。
    • connectionString:使用你提供的完整连接字符串。
    • providerName="System.Data.SqlClient":指定使用 SQL Server 数据提供程序。

在代码中使用该连接字符串:

在 C# 代码中,可以通过以下方式获取并使用这个连接字符串:

csharp 复制代码
using System.Configuration; // 需要添加对 System.Configuration 的引用

// 获取连接字符串
string connStr = ConfigurationManager.ConnectionStrings["FruitAppConnection"].ConnectionString;

// 使用 SqlSugar 示例
var db = new SqlSugarClient(new ConnectionConfig
{
    ConnectionString = connStr,
    DbType = DbType.SqlServer,
    IsAutoCloseConnection = true
});

注意事项:

  • 确保 SQL Server 实例名称(Data Source=GWJ)与你本地环境一致。
  • 如果使用 Windows 身份验证(Integrated Security=True),确保运行程序的用户账户有权限访问 fruitapp 数据库。
  • 如果数据库需要特殊权限,可改用 SQL Server 身份验证(添加 User ID 和 Password 参数)。

实际使用

  • 实际上,我们在具体的.cs文件对于数据库进行操作的时候,还需要引入这个System.Data.SqlClient命名空间,以便使用SQL Server数据库连接和操作的相关类
csharp 复制代码
using System;
using System.Configuration;
using System.Data.SqlClient;
using System.Windows.Forms;

namespace appfruit
{
    public partial class LoginForm : Form
    {
        public LoginForm()
        {
            InitializeComponent();
        }

        private void btnLogin_Click(object sender, EventArgs e)
        {
            string username = txtUsername.Text;
            string password = txtPassword.Text;

            // 从 App.config 中读取数据库连接字符串
            string connectionString = ConfigurationManager.ConnectionStrings["FruitAppConnection"].ConnectionString;

            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                try
                {
                    // 打开数据库连接
                    connection.Open();

                    // 编写 SQL 查询语句,假设用户信息存储在名为 Users 的表中
                    string query = "SELECT COUNT(*) FROM Users WHERE Username = @Username AND Password = @Password";
                    SqlCommand command = new SqlCommand(query, connection);
                    command.Parameters.AddWithValue("@Username", username);
                    command.Parameters.AddWithValue("@Password", password);

                    // 执行查询并获取结果
                    int count = (int)command.ExecuteScalar();

                    if (count > 0)
                    {
                        MessageBox.Show("登录成功!");
                        this.DialogResult = DialogResult.OK;
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("用户名或密码错误,请重试。");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("数据库连接或查询出错:" + ex.Message);
                }
            }
        }
    }
}
相关推荐
泡海椒10 小时前
JQuick-SQL 快速开始:注册内存表并执行查询
数据库·windows·sql
用户7884773163413 小时前
用 C# 把每周 6 小时的 PDF 录入干到 20 分钟:一份可复制的桌面 OCR 方案
c#
钱栈up13 小时前
耳机音效不对,我顺手查了系统更新,结果挖出个崩溃了整天的服务
windows·shell
xiao77mwq13 小时前
Wireshark 在 Windows 上没法按进程抓包,我补了一条路
windows
Helix25014 小时前
MDT自动化部署实战:构建企业级Windows批量装机与PXE网络引导环境
windows·mdt自动化部署·wds网络启动·pxe引导·windows批量装机·任务序列·无人值守安装
学IT的周星星15 小时前
记忆系统:让 Agent 记住你是谁、上次聊到哪
运维·服务器·人工智能·windows·大模型·llm·agent
csdn_aspnet15 小时前
C# .NetCore Swagger ISchemaFilter 处理枚举、特殊类型
c#·.netcore·swagger
滴滴答答哒15 小时前
C# 技巧:优雅实现对象的“局部更新”与“字段合并”
开发语言·c#
撞强16 小时前
Windows 上从零开始:Obsidian + Copilot(Icompify)+ 客户洞察实战 · 图文指南
windows·copilot·obsidian·icompify
weixin_5716674118 小时前
Windows 通过 SSH 反向隧道向 Ubuntu 转发代理
linux·运维·windows·代理