ADO.NETの基本

まず、
サフィックスudlを付けてデータベースに接続するフォルダーを作成します

  • ADO.NETクラスコレクションは、主に次の5つのコアコンポーネントクラスで構成されています。
    接続(データベース接続)
    コマンド(データベースコマンド)
    DataReader(データベースリーダー)
    DataSet(データセット)
    DataAdaper(データベースアダプター)
オブジェクト 説明
接続 データベースとの接続機能を提供するために使用されます
コマンド データを返し、ストアドプロシージャを実行し、パラメータ情報を送信または取得するデータベースコマンド
DataReader コマンドを介してデータベースから情報を取得する機能。データベースを読み取る1つの方法
DataSet データベースコンテナであり、メモリ内のデータベースと見なすことができます
DataAdapter これは、DataSetオブジェクトとデータソースを接続するブリッジです。DataAdapterオブジェクトは、Commandオブジェクトを使用してデータソースでSQLコマンドを実行し、データをDataSetにロードして、DataSet内のデータの更新が一貫していることを確認できます。データソースを使用します。
  • 最初にデータベースにリンクし、次にデータベース内のデータをdataGridView1に表示します。
    最初にを使用して2つをインポートします。
using System.Data.SqlClient;

最初にデータベースアドレスを定義します

 public string conser = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=aa;Data Source=DESKTOP-0HQ3J93";

1.データベースをバインドし、メインインターフェイスにデータ//書き込みを表示します

string sql = "select * from aa";   //定义一个存储的表
SqlConnection con = new SqlConnection(conser);//链接数据库
con.Open();//打开数据库
SqlDataAdapter dt = new SqlDataAdapter(sql,con);//用适配器存储数据=
DataSet ds = new DataSet();  //数据库内存
dt.Fill(ds);//把dt所有内容填充到ds里面
dataGridView1.DataSource = ds.Tables[0];//dataGridView1添加ds里面的数据
con.Close();//关闭数据库

2.データを追加します

string sql = "insert into aa (姓名,性别,年龄)values('"+ textBox1.Text+"','" +textBox2.Text + "','" +textBox3.Text +"')";
SqlConnection con = new SqlConnection(conser);//链接数据库
con.Open();
SqlCommand cmd = new SqlCommand(sql,con);//只显示这一行,修改命令,一定需要对数据库进行修改
int i=cmd.ExecuteNonQuery();//检查有没有修改成功,必须要写,不写添加不成功
if(i>0){
	MessageBox.Show("添加成功");
	Form1_Load(null,null);//界面刷新;
}

3.データベースの変更

string sql = "update aa set 姓名='" + textBox1.Text + "',性别='" + textBox2.Text + "',年龄='" + textBox3.Text + "'where 姓名='" + textBox1.Text + "'";
SqlConnection con = new SqlConnection(conser);
con.Open();
SqlCommand cmd = new SqlCommand(sql,con);
cmd.ExecuteNonQuery();
Form1_Load(null,null);

4.データベースの削除

string sql = "delete from aa where 姓名='"+textBox1.Text+"'";
SqlConnection con = new SqlConnection(conser);//链接数据库
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);//只显示这一行
int i = cmd.ExecuteNonQuery();//检查有没有修改成功,必须要写,不写添加不成功
if (i > 0)
{
	MessageBox.Show("修改成功");
	Form1_Load(null, null);//界面刷新;
}

5.データベースクエリ

string sql = "select * from aa where 姓名='" + textBox1.Text + "'";
SqlConnection con = new SqlConnection(conser);//链接数据库
con.Open();
SqlDataAdapter dt = new SqlDataAdapter(sql,con);//不用对数据库进行修改
DataSet ds = new DataSet();  //数据库内存
dt.Fill(ds);//把dt所有内容填充到ds里面
dataGridView1.DataSource = ds.Tables[0];//

2つのデータをクエリします。つまり、上記のまたはリンクを使用し、削除します。

 string sql = "select * from aa where 姓名='" + textBox1.Text.Trim() + "'or 性别='" + textBox2.Text.Trim() + "'";

ドロップダウンリストcomboBoxをクエリして、選択を取得します

switch(comboBox1.Text){
	case "姓名" :
		/*代码执行块*/
		break;

6.dataGridView1のデータが表示される編集ボックスをクリックします

textBox1.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
textBox2.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
textBox3.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();
  • SqlCommandとSqlDataAdapterの使用法の違い
    SqlCommandは、
    データベース内のデータを変更する必要があるSqlDataAdapterに使用され、データベース内のデータを変更する必要がない場合に使用されます。

7.入力を2つのテーブルに同時にインポートします

SqlConnection con = null;
SqlTransaction stre = null;//创建事物对象
try
{
	con = new SqlConnection(conser);
	con.Open();
	string sql1 = "insert into stu1(name,pw)values('"+textBox1.Text+"','"+textBox2.Text+"')";
	string sql2 = "insert into stu2(name,pw)values('" + textBox1.Text + "','" + textBox2.Text + "')";
	stre = con.BeginTransaction();//启动事物
	SqlCommand cmd = new SqlCommand();
	cmd.Transaction = stre;//将sql命令执行到事物
	cmd.Connection = con;
	cmd.CommandText = sql1;
	cmd.ExecuteNonQuery();
	cmd.CommandText = sql2;
	cmd.ExecuteNonQuery();
	stre.Commit();//将多个sql命令当成一个事物整体提交
	}
catch
{
	if(stre !=null){
		stre.Rollback();//事物不是一致的,将回滚
	}
}
finally
{ 
	if(con!=null){
		con.Close();
	}
}

8.ログイン判定機能

 string sql = "select * from zhuce where zh='"+textBox1.Text+"' and pw1='"+textBox2.Text+"'";//查询账号密码
            SqlConnection con = new SqlConnection(conser);
            SqlCommand cmd = new SqlCommand(sql,con);
            con.Open();
            SqlDataReader dt = cmd.ExecuteReader();//快速读取数据,只能读,不能写
            dt.Read();//读取数据     dt[i]即是他表格存储的第几个数据
            string ty=dt["types"].ToString().Trim();//因为sql查询了表格所有内容,所以用dt去查找表格中types的内容,转换为string类型,用来得到里面的数据。
            if (dt.HasRows)//表示的是从数据库读出来的数据集dataReader中是否存在数据
            {
            }
  • カプセル化(2層アーキテクチャ)
    は、UIインターフェイスで直接呼び出すクラスを定義します
 class Class1
    {
        public static string constr= "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=aa;Data Source=DESKTOP-0HQ3J93";
        SqlCommand cmd = null;
        SqlConnection con = null;
        public SqlConnection GetCon()//链接数据库
        {
            con = new SqlConnection(constr);
            return con;
        }
        public int GetByNonQuery(string sql)//增删改
        {
            con = GetCon();
            con.Open();
            cmd = new SqlCommand(sql, con);
            int i = cmd.ExecuteNonQuery();
            con.Close();
            return i;
        }
        public DataTable GetByTable(string sql)//显示到dataGridView
        {
            con = GetCon();
            SqlDataAdapter sda = new SqlDataAdapter(sql, con);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            return ds.Tables[0];
        }
        public SqlDataReader GetByRead(string sql)//判断是否有无此数据,即登录功能
        {
            con = GetCon();
            con.Open();
            cmd = new SqlCommand(sql, con);
            SqlDataReader i = cmd.ExecuteReader();
            return i;
            con.Close();
        }
        public int GetByScalar(string sql)
        {
            con = GetCon();
            con.Open();
            cmd = new SqlCommand(sql, con);
            int i = Convert.ToInt32(cmd.ExecuteScalar());
            con.Close();
            return i;
        }
    }

転送

//调用显示
 dataGridView1.DataSource = c.GetByTable("select * from aa");
 //调用增加
 c.GetByNonQuery("insert into aa(姓名,性别,年龄)values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "')");
            Form1_Load(null,null);

1つのクラスを使用してさまざまなインターフェイスのデータを共有し、メニューバーをクリックできるかどうか
ここに画像の説明を挿入
ここに画像の説明を挿入
変更します
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_44931166/article/details/103219610