主要分为两部分 1. 数据库连接 2. SQL语句
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WindowsFormsApp1
{
internal class DB : IDisposable
{
private SqlConnection sqlConnection;
public DB() {
sqlConnection = new SqlConnection(@"server=localhost;database=SCNT;uid=sa;pwd=123456");
sqlConnection.Open();
}
public DataTable getBySql(string sql)
{
// 查询
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(new SqlCommand(sql, sqlConnection));
DataTable dataTable = new DataTable();
sqlDataAdapter.Fill(dataTable);
return dataTable;
}
public void setBySql(string sql)
{
// 修改
new SqlCommand(sql, sqlConnection).ExecuteNonQuery();
}
public void Dispose()
{
// 相当于析构函数
sqlConnection.Close();
// 在 C# 中关闭数据库连接不能在类的析构函数中关闭,否则会抛出异常
// 通过实现 C# 中IDisposable接口中的 Dispose() 方法主要用途是释放非托管类资源
}
}
}
这里有一篇详细的关于SQL部分关键字使用说明
想要弄懂GROUP BY看这一篇就够了 (qq.com)
// 含约束的数据项删除
db.setBySql("alter table WORKS nocheck constraint all;"); // 接触约束判断
string sql = string.Format("DELETE FROM WORKS WHERE EmpNo = '{0}';", listView1.SelectedItems[0].SubItems[0].Text);
db.setBySql(sql);
sql = string.Format("DELETE FROM EMPLOYEE WHERE EmpNo = '{0}';", listView1.SelectedItems[0].SubItems[0].Text);
db.setBySql(sql);
db.setBySql("alter table WORKS check constraint all"); // 启用约束判断
listView1.SelectedItems.Clear();