如何使用 C# 在 SQL Server 数据库中保存 DataGridViewComboBoxColumn

Posted

技术标签:

【中文标题】如何使用 C# 在 SQL Server 数据库中保存 DataGridViewComboBoxColumn【英文标题】:How save DataGridViewComboBoxColumn in SQL Server database using C# 【发布时间】:2020-08-15 16:51:14 【问题描述】:

我要开发学校管理系统,并希望通过保存按钮将课堂上每个学生的出勤记录从 DataGridViewComboBoxColumn 保存到数据库中。

我的意思是设置所有学生记录,例如当按下“保存”按钮时,存在、不存在或将保存记录留在数据库中。

这是我的代码 - 当我更改第一个学生的单元格时它可以工作

private void AttendanceDataGridVies_CurrentCellDirtyStateChanged(object sender, EventArgs e)
    
        AttendanceDataGridVies.CommitEdit(DataGridViewDataErrorContexts.Commit);
    

    private void AttendanceDataGridVies_CellValueChanged(object sender, DataGridViewCellEventArgs e)
    
        string comboboxSelectedValue = string.Empty;

        if (AttendanceDataGridVies.Columns[e.ColumnIndex].GetType() == typeof(DataGridViewComboBoxColumn))
        
            comboboxSelectedValue = AttendanceDataGridVies.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
            label2.Text = comboboxSelectedValue;
        
    

【问题讨论】:

您的问题是什么?我没有看到任何与将数据保存到数据库相关的代码。 【参考方案1】:

您可能希望设置实体框架之类的东西来处理数据库功能。这篇文章已经有好几年了,但我认为它可能会让你上路:Entity-Framework-Tutorial-for-Beginners

此外,您通常希望将 DB 层与表示层分开。但是,如果您愿意,您可以设置自己的连接字符串并编写自己的 SQL。为此,您基本上需要:

    设置连接字符串 创建 SQL 语句 打开 SQL 连接 调用 SQL 命令 关闭连接

一个非常简单的连接到项目内部的本地 SQL MDF 的例子:

       private void button1_Click(object sender, EventArgs e)
        
            addToDatabase();
        

        private void addToDatabase()
        
            string connection = @"Server=(LocalDB)\MSSQLLocalDB;attachdbfilename=C:\Users\xxxxx\source\repos\MySolution\MyProject\MyDatabase.mdf;integrated security=True;";
            SqlConnection sqlConnection = new SqlConnection(connection);

            string query = "INSERT INTO Table1 " +
                "(Id, Column1, Column2) " +
                "VALUES (@Id,  @Column1, @Column2) ";
            SqlCommand cmd = new SqlCommand(query, sqlConnection);
            cmd.Parameters.Add("@Id", SqlDbType.Int).Value = 1;
            cmd.Parameters.Add("@Column1", SqlDbType.VarChar, 50).Value = "value1";
            cmd.Parameters.Add("@Column2", SqlDbType.VarChar, 50).Value = "Value2";

            try
            
                sqlConnection.Open();
                cmd.ExecuteNonQuery();
            
            catch (Exception ex)
            
                throw ex;
            
            finally
            
                sqlConnection.Close();
            
        

【讨论】:

以上是关于如何使用 C# 在 SQL Server 数据库中保存 DataGridViewComboBoxColumn的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ADO 在 C# 中获得高效的 Sql Server 死锁处理?

如何在 C# 中从 SQL Server 数据库中检索数据?

如何使用 C# 和 SQL Server 连接到数据库

如何在 C# 控制台应用程序中使用 XmlTextReader 将 XML 数据插入 SQL Server 表?

如何使用 C# 从 SQL Server 数据库中逐行将数据检索到 datagridview 中

Winforms:如何使用 C# 将图片上传到 SQL Server 数据库