c# - 如何使用 C# 在 SQL Server 数据库中保存 DataGridViewComboBoxColumn
问题描述
我将开发学校管理系统,并希望通过 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;
}
}
解决方案
您可能想要设置类似 Entity Framework 的东西来处理数据库功能。这篇文章已经有好几年了,但我认为它可能会让你上路: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();
}
}
推荐阅读
- laravel - 访问 laravel 请求变量的更好做法是什么
- css - 相同的 css svg 内容 url 的高度比 svg 标签高 4px?
- python - 如何使用 Python 3 读取流?(不带请求模块)
- c# - 如何有效地处理从 Listview 的数据模板中生成的事件
- ruby-on-rails - Rails:当我们需要在循环内查询关联时,如何删除 n+1 查询?
- php - 使用 SQL 更改 wordpress 旧图像路径 url 不会反映在我的数据库中
- java - 执行命令时如何获取所有错误?
- azure - 如何使用 powershell 找出 Azure VM 使用的 Windows 版本?
- pyspark - 如何使用 Map/Reduce 或任何其他方法查找 rdd 的每列的 MIN 和 MAX
- python - 在 python 中合并 2 个模型对象并提供未显示在一行中的数据(使用数据表列出来自 db 的数据)