导读:本期聚焦于小伙伴创作的《如何使用C#编写操作SQL Server 2008的界面实例代码》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何使用C#编写操作SQL Server 2008的界面实例代码》有用,将其分享出去将是对创作者最好的鼓励。

在C#开发中,操作SQL Server 2008是很多桌面应用的基础需求,下面我们通过WinForms界面实例,完整演示从连接数据库到实现增删改查的全流程。

如何使用C#编写操作SQL Server 2008的界面实例代码

环境准备

首先需要确保本地已经安装SQL Server 2008,并且创建了测试数据库和表,我们这里使用名为TestDB的数据库,其中有一张User表,结构如下:

字段名类型说明
Idint主键,自增
UserNamenvarchar(50)用户名
Ageint年龄

然后新建WinForms项目,在窗体上添加对应的输入控件和按钮,用于触发数据库操作。

数据库连接配置

首先需要在配置文件中添加数据库连接字符串,在App.config中添加如下内容:

<configuration>
  <connectionStrings>
    <add name="SqlConn" connectionString="Server=.;Database=TestDB;User Id=sa;Password=你的密码;" providerName="System.Data.SqlClient"/>
  </connectionStrings>
</configuration>

如果使用的是Windows身份验证,连接字符串可以改为Server=.;Database=TestDB;Integrated Security=True;

核心操作类封装

为了避免重复编写数据库连接和操作代码,我们封装一个数据库操作辅助类:

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

public class SqlHelper
{
    // 获取配置中的连接字符串
    private static string connStr = ConfigurationManager.ConnectionStrings["SqlConn"].ConnectionString;

    // 执行增删改操作,返回受影响行数
    public static int ExecuteNonQuery(string sql, params SqlParameter[] parameters)
    {
        using (SqlConnection conn = new SqlConnection(connStr))
        {
            using (SqlCommand cmd = new SqlCommand(sql, conn))
            {
                if (parameters != null)
                {
                    cmd.Parameters.AddRange(parameters);
                }
                conn.Open();
                return cmd.ExecuteNonQuery();
            }
        }
    }

    // 执行查询,返回DataTable
    public static DataTable ExecuteQuery(string sql, params SqlParameter[] parameters)
    {
        using (SqlConnection conn = new SqlConnection(connStr))
        {
            using (SqlCommand cmd = new SqlCommand(sql, conn))
            {
                if (parameters != null)
                {
                    cmd.Parameters.AddRange(parameters);
                }
                using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
                {
                    DataTable dt = new DataTable();
                    adapter.Fill(dt);
                    return dt;
                }
            }
        }
    }

    // 执行查询,返回首行首列的值
    public static object ExecuteScalar(string sql, params SqlParameter[] parameters)
    {
        using (SqlConnection conn = new SqlConnection(connStr))
        {
            using (SqlCommand cmd = new SqlCommand(sql, conn))
            {
                if (parameters != null)
                {
                    cmd.Parameters.AddRange(parameters);
                }
                conn.Open();
                return cmd.ExecuteScalar();
            }
        }
    }
}

界面交互代码实现

假设窗体上有用户名输入框txtUserName、年龄输入框txtAge、查询按钮btnQuery、新增按钮btnAdd、修改按钮btnUpdate、删除按钮btnDelete,以及显示数据的DataGridView控件dgvUser,下面是各按钮的事件处理代码:

查询数据

private void btnQuery_Click(object sender, EventArgs e)
{
    string sql = "SELECT Id, UserName, Age FROM User";
    DataTable dt = SqlHelper.ExecuteQuery(sql);
    dgvUser.DataSource = dt;
}

新增数据

private void btnAdd_Click(object sender, EventArgs e)
{
    string userName = txtUserName.Text.Trim();
    int age;
    if (!int.TryParse(txtAge.Text.Trim(), out age))
    {
        MessageBox.Show("请输入正确的年龄");
        return;
    }
    string sql = "INSERT INTO User (UserName, Age) VALUES (@UserName, @Age)";
    SqlParameter[] parameters = {
        new SqlParameter("@UserName", userName),
        new SqlParameter("@Age", age)
    };
    int rows = SqlHelper.ExecuteNonQuery(sql, parameters);
    if (rows > 0)
    {
        MessageBox.Show("新增成功");
        btnQuery_Click(null, null); // 刷新数据
    }
    else
    {
        MessageBox.Show("新增失败");
    }
}

修改数据

private void btnUpdate_Click(object sender, EventArgs e)
{
    if (dgvUser.SelectedRows.Count == 0)
    {
        MessageBox.Show("请选择要修改的行");
        return;
    }
    int id = Convert.ToInt32(dgvUser.SelectedRows[0].Cells["Id"].Value);
    string userName = txtUserName.Text.Trim();
    int age;
    if (!int.TryParse(txtAge.Text.Trim(), out age))
    {
        MessageBox.Show("请输入正确的年龄");
        return;
    }
    string sql = "UPDATE User SET UserName = @UserName, Age = @Age WHERE Id = @Id";
    SqlParameter[] parameters = {
        new SqlParameter("@UserName", userName),
        new SqlParameter("@Age", age),
        new SqlParameter("@Id", id)
    };
    int rows = SqlHelper.ExecuteNonQuery(sql, parameters);
    if (rows > 0)
    {
        MessageBox.Show("修改成功");
        btnQuery_Click(null, null); // 刷新数据
    }
    else
    {
        MessageBox.Show("修改失败");
    }
}

删除数据

private void btnDelete_Click(object sender, EventArgs e)
{
    if (dgvUser.SelectedRows.Count == 0)
    {
        MessageBox.Show("请选择要删除的行");
        return;
    }
    int id = Convert.ToInt32(dgvUser.SelectedRows[0].Cells["Id"].Value);
    string sql = "DELETE FROM User WHERE Id = @Id";
    SqlParameter[] parameters = {
        new SqlParameter("@Id", id)
    };
    int rows = SqlHelper.ExecuteNonQuery(sql, parameters);
    if (rows > 0)
    {
        MessageBox.Show("删除成功");
        btnQuery_Click(null, null); // 刷新数据
    }
    else
    {
        MessageBox.Show("删除失败");
    }
}

注意事项

  • 实际开发中需要添加异常处理,避免程序因为数据库操作异常崩溃
  • 敏感信息如数据库密码不要直接写在代码里,建议使用加密的配置方式
  • 操作完成后及时释放数据库连接资源,上面的封装已经通过using语句实现了自动释放
  • 如果SQL Server 2008和开发环境不在同一台机器,需要把连接字符串中的Server改为对应的服务器IP地址
以上代码都是基于ADO.NET的基础实现,适合新手理解C#操作SQL Server 2008的核心逻辑,实际项目中可以根据需求扩展更多功能。

C#SQL_Server_2008WinFormsADO.NET数据库操作修改时间:2026-05-29 03:43:34

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。