1.首次要准备的(工具)是:a.Microsoft Visual Studio Ultimate 2012;b.Microsoft SQL Server Management Studio ;

2.首先创建一个(SQL Server)数据表,并且填充相应的数据:

 USE SQL
 GO
 --创建数据表中的字段
 CREATE TABLE SQL_T(
 ) NOT NULL,
 ) NOT NULL,
 [学号] INT NOT NULL,
 ,) NOT NULL,
 ,) NOT NULL,  --标识列
 CONSTRAINT PK_SQL_T_1 PRIMARY KEY CLUSTERED([ID]DESC) --添加主键约束,降序排列
 --对索引进行一定的设置
 WITH(
 PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON
 )ON[PRIMARY]

 )ON[PRIMARY]
 GO
 --下面写入数据:
 SET TRANSACTION ISOLATION LEVEL REPEATABLE READ --设置级别
 BEGIN TRANSACTION INSERT_SQL_T_1
 INSERT INTO SQL_T ([姓名] ,[班级] ,[学号] ,[分数] )  --选择插入数据的字段
 ,99.56)  --写入数据
 COMMIT TRANSACTION INSERT_SQL_T_1   --提交
 GO

 SET TRANSACTION ISOLATION LEVEL REPEATABLE READ --设置级别
 BEGIN TRANSACTION INSERT_SQL_T_2
 INSERT INTO SQL_T ([姓名] ,[班级] ,[学号] ,[分数] )  --选择插入数据的字段
 ,98.23)  --写入数据
 COMMIT TRANSACTION INSERT_SQL_T_2   --提交

 go

 SET TRANSACTION ISOLATION LEVEL REPEATABLE READ --设置级别
 BEGIN TRANSACTION INSERT_SQL_T_3
 INSERT INTO SQL_T ([姓名] ,[班级] ,[学号] ,[分数] )  --选择插入数据的字段
 ,87.6)  --写入数据
 COMMIT TRANSACTION INSERT_SQL_T_3   --提交

 go

 SET TRANSACTION ISOLATION LEVEL REPEATABLE READ --设置级别
 BEGIN TRANSACTION INSERT_SQL_T_4
 INSERT INTO SQL_T ([姓名] ,[班级] ,[学号] ,[分数] )  --选择插入数据的字段
 ,65.51)  --写入数据
 COMMIT TRANSACTION INSERT_SQL_T_4   --提交

 go

 SET TRANSACTION ISOLATION LEVEL REPEATABLE READ --设置级别
 BEGIN TRANSACTION INSERT_SQL_T_1
 INSERT INTO SQL_T ([姓名] ,[班级] ,[学号] ,[分数] )  --选择插入数据的字段
 ,256.56)  --写入数据
 COMMIT TRANSACTION INSERT_SQL_T_1   --提交
 go

 --下面显示写入的数据表
 SELECT*
 FROM[SQL_T]
 GO

3.1.在VS2012中加载上面创建的数据表;

菜单中选择【项目】-选择【添加数据源】-【数据库】-【数据集】-点击新建连接-刷新服务器名后选择-然后选择对应数据表的数据库-最后点击测试连接,如下图:

然后点击下一步,下一步,完成.(以上我们是用windows身份进行连接的,此外还可以使用sql server 身份进行连接。)

然后进入SQL Server对象资源管理器中查看刚刚加载的数据库:

接下来接可以在WindowsForms上进行操作了。

4.1.创建数据库的连接:

 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 using System.Data.SqlClient;  //包含数据库连接对象的命名空间

 namespace WindowsFormsApplication1
 {
     public partial class Form1 : Form
     {
         public Form1()
         {
             InitializeComponent();
         }

         private void button1_Click(object sender, EventArgs e)
         {
             if (textBox1.Text == "")
             { MessageBox.Show("请输入要连接的数据库名!"); }
             else
             {
                 try
                 {  //连接对象其中的字符串中包含了服务器名:可以是本机的ip地址,要连接的数据库,连接的身份,,注意“Data Source=PQC-PC\\SQLEXPRESS;”是2个“\\”
                     SqlConnection sqlconn = new SqlConnection("Data Source=PQC-PC\\SQLEXPRESS;Initial Catalog=" + textBox1.Text.Trim() + ";Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False");
                     sqlconn.Open(); //打开连接
                     //判断连接的状态:
                     if (sqlconn.State == ConnectionState.Open)
                     { MessageBox.Show("恭喜已经成功连接到数据库了!"); }

                     sqlconn.Close();
                 }
                 catch
                 { { MessageBox.Show("连接失败!"); } }
             }

         }
     }
 }

4.2.1.colse()方法关闭数据库连接同上;

4.2.2. 比较colse()方法和 Dispose ()都是关闭数据库连接的方法,区别就是: Dispose 不仅关闭一个连接而且还要清理连接所暂用的资源,当用close关闭连接后可以用open方法再次打开,而 Dispose 却不能,非要再次对其连接进行初始化;

 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 using System.Data.SqlClient;  //*****

 namespace WindowsFormsApplication1
 {
     public partial class Form2 : Form
     {
         public Form2()
         {
             InitializeComponent();
         }
         SqlConnection sqlconn;
         private void button1_Click(object sender, EventArgs e)
         {
             if (textBox1.Text == "")
             {
                 errorProvider1.SetError(textBox1, "这里不能为空!");  //验证提示输入

             }
             else
             {
                 try
                 {
                     string sql_conn = "Data Source=PQC-PC\\SQLEXPRESS;Initial Catalog=" + textBox1.Text.Trim() + ";Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False";
                     sqlconn = new SqlConnection(sql_conn);  //建立连接
                     sqlconn.Open();  //       打开连接
                     if (sqlconn.State == ConnectionState.Open)   //判断连接的状态
                     {
                         listBox1.Items.Add("数据库连接成功\n");
                         this.toolStripStatusLabel1.Text = "数据库连接成功";
                     }
                 }
                 catch (Exception ex)   //显示错误信息提示
                 {
                     listBox1.Items.Add(ex.Message );
                     this.toolStripStatusLabel1.Text = "数据库连接失败!";
                 }
             }

         }

         private void Form2_Load(object sender, EventArgs e)
         {
             AcceptButton = button1;
             listBox1.HorizontalScrollbar = true; listBox1.ScrollAlwaysVisible = true;
             listBox1.SelectionMode = SelectionMode.MultiExtended;

         }

         private void button2_Click(object sender, EventArgs e)
         {
             sqlconn.Close();  //Close方法关闭
             try
             {
                 sqlconn.Open();
                 if (sqlconn.State == ConnectionState.Open)
                 {
                     listBox1.Items.Add("恭喜再次连接成功!\n"); this.toolStripStatusLabel1.Text = "ok";
                 }
             }
             catch (Exception ex)
             { listBox1.Items.Add(ex.Message +"\n"); }

         }

         private void button3_Click(object sender, EventArgs e)
         {
             sqlconn.Dispose();
             try
             {
                 sqlconn.Open();
                 if (sqlconn.State == ConnectionState.Open)
                 {
                     listBox1.Items.Add("恭喜再次连接成功!\n"); this.toolStripStatusLabel1.Text = "ok";
                 }
             }
             catch (Exception ex)
             { listBox1.Items.Add(ex.Message + "\n"); toolStripStatusLabel1.Text = "有问题!"; }
         }
     }
 }

5.1.使用command对象编辑(增/删/改)数据表:

 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 using System.Data.SqlClient;

 namespace WindowsFormsApplication1
 {
     public partial class Form3 : Form
     {
         public Form3()
         {
             InitializeComponent();
         }

         SqlConnection sqlconn;  //连接对象
         SqlCommand sqlcomm;     //sql修改对象
         SqlDataAdapter sda;      //适配器

         string str_conn = "Data Source=PQC-PC\\SQLEXPRESS;Initial Catalog=SQL;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False";

         private void Form3_Load(object sender, EventArgs e)
         {
             sqlconn = new SqlConnection(str_conn );
             sqlcomm = new SqlCommand("select* from[SQL_T]",sqlconn );   //查询操作
             sda = new SqlDataAdapter(sqlcomm );           //实例化适配
             DataSet ds1 = new DataSet();
             sda.Fill(ds1,"cs1" );      //填充ds1数据池
             dataGridView1.DataSource=ds1.Tables["cs1"];   //将数据池里的【cs1】表显示在datagridview控件上

         }

         //
         private void xianshi_datagridview2()   //创建一个显示修改后的方法
         {

                 //下面将修改后的数据显示在另一个控件上:
             sqlconn = new SqlConnection(str_conn );
             sqlcomm = new SqlCommand("select* from[SQL_T]", sqlconn);
             sda = new SqlDataAdapter(sqlcomm );
             DataSet ds2 = new DataSet();
             sda.Fill(ds2, "cs2");
             dataGridView2.DataSource = ds2.Tables["cs2"];

         }

         private void zengjia_button_Click(object sender, EventArgs e)
         {
             if (xingming.Text == "" && banji.Text == "" && xuehao.Text == "" && fenshu.Text == "")  //判断添加的信息是否齐全
             { MessageBox.Show("只有齐全的数据才能添加哦!", "", MessageBoxButtons.OK, MessageBoxIcon.Error); }
             else
             {
                 sqlconn.Open(); //打开连接

                 sqlcomm.CommandText = "INSERT INTO SQL_T ([姓名] ,[班级] ,[学号] ,[分数] ) VALUES("
                     + "'" + xingming.Text.Trim() + "'" + "," + "'" + banji.Text.Trim() + "'" + "," + xuehao.Text.Trim() + "," + fenshu.Text.Trim() + ")";

                 //说明CommandType的属性为SQL文本命令
                 sqlcomm.CommandType = CommandType.Text;

                 //使用ExecuteNonQuery()前要打开连接
                 int i = Convert.ToInt32(sqlcomm.ExecuteNonQuery());  

                 this.toolStripStatusLabel1.Text = "已经成功添加了"+i.ToString()+"行数据。";

                 sqlconn.Close();  //关闭数据连接

                 xianshi_datagridview2(); //调用显示修改后的方法

             }
         }

         private void zengjia_button_MouseCaptureChanged(object sender, EventArgs e)
         {

         }

         private void xiugai_button_Click(object sender, EventArgs e)
         {
             sqlconn.Open();  //打开连接
             sqlcomm.CommandText = "update SQL_T set [姓名]=" + "'" + xingming.Text.Trim() + "'" + "," + "[班级]=" + "'" + banji.Text.Trim() + "'" + "," + "[学号]=" + xuehao.Text.Trim()+","+"[分数]="+fenshu.Text.Trim()+"  where [ID]="+id.Text.Trim() ;
             sqlcomm.CommandType=CommandType.Text;
             int i = Convert.ToInt32(sqlcomm.ExecuteNonQuery());

             this.toolStripStatusLabel1.Text = "修改了" + i.ToString() + "记录";

             sqlconn.Close();  //关闭数据连接

             xianshi_datagridview2(); //调用显示修改后的方法

         }

         private void shanchu_button_Click(object sender, EventArgs e)
         {
             sqlconn.Open();//打开连接
             sqlcomm.CommandText = "DELETE FROM SQL_T WHERE [ID]=" + id.Text.Trim();
             sqlcomm.CommandType = CommandType.Text;
             int i = Convert.ToInt32(sqlcomm.ExecuteNonQuery());
             this.toolStripStatusLabel1.Text = "已经成功删除了"+i.ToString()+"句话!";
             sqlconn.Close();
             xianshi_datagridview2();
         }
     }
 }

检验1:

2.增加一条数据(姓名=你好,学号=110,班级=没有,分数=3):

3.将刚刚增加的数据修改成(姓名=好的,学号=520,班级=不告诉你,分数=100):

4.删除这条数据:

5.2.在(视图)datagridview控件上修改一条记录:

 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 using System.Data.SqlClient;

 namespace WindowsFormsApplication1
 {
     public partial class Form4 : Form
     {
         public Form4()
         {
             InitializeComponent();
         }

         SqlConnection sqlconn = new SqlConnection("Data Source=PQC-PC\\SQLEXPRESS;Initial Catalog=SQL;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False");

         private void Form4_Load(object sender, EventArgs e)
         {
             SqlCommand sqlcomm = new SqlCommand("select* from[SQL_T]",sqlconn );
             SqlDataAdapter sda = new SqlDataAdapter(sqlcomm );
             DataSet ds = new DataSet();
             sda.Fill(ds,"cs" );
             dataGridView1.DataSource=ds.Tables["cs"];

         }

         private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
         {
             try
             {
                 //将控件中对应的信息赋值给对用的textbox
                 id.Text = dataGridView1.SelectedCells[].Value.ToString();
                 xingming.Text = dataGridView1.SelectedCells[].Value.ToString();
                 banji.Text = dataGridView1.SelectedCells[].Value.ToString();
                 xuehao.Text = dataGridView1.SelectedCells[].Value.ToString();
                 fenshu.Text = dataGridView1.SelectedCells[].Value.ToString();
             }
             catch (Exception ex)
             { this.toolStripStatusLabel1.Text = ex.Message; }
         }

         private void 确定修改_Click(object sender, EventArgs e)
         {
             SqlCommand sqlcomm = new SqlCommand("select* from[SQL_T]", sqlconn);
             SqlDataAdapter sda = new SqlDataAdapter(sqlcomm);
             DataSet ds1 = new DataSet();
             sda.Fill(ds1,"cs1");
             DataTable dt1 = new DataTable();
             dt1=ds1.Tables["cs1"];
             sda.FillSchema(dt1,SchemaType.Mapped );
             DataRow  dr = dt1.Rows.Find (id.Text );  //读取主键行
             //将textbox中对应的信息赋值给datatable中的对应行信息
             dr["姓名"] = xingming.Text.Trim();
             dr["班级"] = banji.Text.Trim();
             dr["学号"] = xuehao.Text.Trim();
             dr["分数"] = fenshu.Text.Trim();
             SqlCommandBuilder sqlcb = new SqlCommandBuilder(sda );
             sda.Update(dt1 );
             dataGridView1.DataSource=ds1.Tables["cs1"];
             toolStripStatusLabel1.Text = "修改成功!";

         }
     }
 }

检验:1.

2.

3.

5.3.在(视图)datagridview控件上修改单元格:

 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 using System.Data.SqlClient;

 namespace WindowsFormsApplication1
 {
     public partial class Form5 : Form
     {
         public Form5()
         {
             InitializeComponent();
         }

         SqlConnection sqlconn = new SqlConnection("Data Source=PQC-PC\\SQLEXPRESS;Initial Catalog=SQL;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False");

         private void Form5_Load(object sender, EventArgs e)
         {
             SqlDataAdapter sda = new SqlDataAdapter("select* from[SQL_T]",sqlconn );
             DataSet ds = new DataSet();
             sda.Fill(ds,"cs");
             dataGridView1.DataSource=ds.Tables["cs"];

         }
         private DataTable copy_t()  //复制一个数据表方法
         {
             SqlDataAdapter sda = new SqlDataAdapter("select* from[SQL_T]", sqlconn);
             DataTable dt = new DataTable();
             int i = sda.Fill(dt );
             return dt;
         }
         private Boolean up_show()  //更改的方法,其中更改方法中自动调用 copy_t()  //复制一个数据表方法
         {
             SqlDataAdapter sda = new SqlDataAdapter("select* from[SQL_T]", sqlconn);
             DataTable up_dt = copy_t();
             up_dt.Rows.Clear();
             DataTable show_dt = (DataTable)this.dataGridView1.DataSource;
             ; i < dataGridView1.Rows.Count - ; i++)
             { up_dt.ImportRow(show_dt.Rows[i]); }

             try
             {
                 sqlconn.Open();

                 sda = new SqlDataAdapter("select* from[SQL_T]", sqlconn );
                 SqlCommandBuilder sqlcb = new SqlCommandBuilder(sda );
                 sda.Update(up_dt);
             }
             catch (Exception ex)
             { this.toolStripStatusLabel1.Text = ex.Message; sqlconn.Close(); return false; }
             up_dt.AcceptChanges();   //提交更改的数据
             sqlconn.Close();
             this.toolStripStatusLabel1.Text = "ok";
             return true;
         }

         private void button1_Click(object sender, EventArgs e)
         {
             if (up_show())   //调用更改方法
             { MessageBox.Show("恭喜,数据已经修改成功!"); }
             else
             { MessageBox.Show("操作失败!"); }
         }
     }
 }

检验:

1. 将姓名为:李异峰,班级=C#.NET;姓名为:李晓峰,学号=880,班级=asp.net;

--在Microsoft SQL Server Management Studio中查询:

ADO.NET:C#/SQL Server的更多相关文章

  1. ADO.NET访问SQL Server调用存储过程带回参

    1,ADO.NET访问SQL Server调用存储过程带回参 2,DatabaseDesign  use northwind go --存储过程1 --插入一条商品 productname=芹菜 un ...

  2. JDBC连接SQL server与ADO.NET连接Sql Server对比

    JDBC连接SQL server与ADO.NET连接Sql Server对比 1.JDBC连接SQL server 1)java方面目前有很多驱动能够驱动连接SQL servernet.   主流的有 ...

  3. .NET Core开发日志——ADO.NET与SQL Server

    在.NET世界,如果想要对数据库进行操作,总少不了ADO.NET的身影.在.NET Core里同样离不开那些熟悉的类库与API.这里简略地介绍下如何通过ADO.NET对SQL Server进行不同的处 ...

  4. ADO.NET中SQL Server数据库连接池

    连接到数据库服务器通常由几个需要很长时间的步骤组成. 必须建立物理通道(例如套接字或命名管道),必须与服务器进行初次握手,必须分析连接字符串信息,必须由服务器对连接进行身份验证,必须运行检查以便在当前 ...

  5. 使用ADO.NET对SQL Server数据库进行訪问

    在上一篇博客中我们给大家简介了一下VB.NET语言的一些情况,至于理论知识的学习我们能够利用VB的知识体系为基础.再将面向对象程序设计语言的知识进行融合便可进行编程实战. 假设我们须要訪问一个企业关系 ...

  6. [转载]C#中使用ADO.NET连接SQL Server数据库,自动增长字段用作主键,处理事务时的基本方法

    问题描述: 假设在数据库中存在以下两张数据表: User表,存放用户的基本信息,基本结构如下所示:   类型 说明 ID_User int 自动增长字段,用作该表的主键 UserName varcha ...

  7. ADO.NET 基础 (SQL Server)

    一.Web.config配置 <connectionStrings> <add name="constr_name" connectionString=" ...

  8. ADO.NET操作SQL Server:数据库操作类(已封装)

    1.增.删.改通用方法 /// <summary> /// 增.删.改通用方法 /// </summary> /// <param name="commandT ...

  9. ADO.NET操作SQL Server:数据库操作类(未封装)

    1.添加数据 /// <summary> /// 添加数据 /// </summary> /// <param name="newEntity"> ...

随机推荐

  1. SpringBoot之MongoTemplate的查询可以怎么耍

    学习一个新的数据库,一般怎么下手呢?基本的CURD没跑了,当可以熟练的增.删.改.查一个数据库时,可以说对这个数据库算是入门了,如果需要更进一步的话,就需要了解下数据库的特性,比如索引.事物.锁.分布 ...

  2. [Unity Shader] 切线空间的法线贴图

    切线空间的法线贴图,可以这样理解: #纹理坐标是从0到1,它的坐标是x向右,y向下 #顶点坐标是从-1到-1,坐标是x向右,y向上 1 由表面上某点的切线Tangent.副切线Bitangent.法线 ...

  3. 腾讯hr面

    腾讯hr面面经 20181018 寒暄几句 hr自我介绍 hr介绍面试和最后出结果的时间周期 进入主题 自我介绍 考研成绩专业第一 聊考研(考研的经过.考研和保研) 本科成绩 考研成绩超长发挥还是正常 ...

  4. docker run 和docker start的区别

    docker run 只在第一次运行时使用,将镜像放到容器中,以后再次启动这个容器时,只需要使用命令docker start 即可. docker run相当于执行了两步操作:将镜像放入容器中(doc ...

  5. ubuntu HackRF One相关环境搭建

    本文内容.开发板及配件仅限用于学校或科研院所开展科研实验! 淘宝店铺名称:开源SDR实验室 HackRF链接:https://item.taobao.com/item.htm?spm=a1z10.1- ...

  6. 基于神念TGAM的脑波小车(4)

    我使用的是HC05和BT06俩个蓝牙模块 1.[AT模式]HC05蓝牙模块的PIO11接VCC,上电后即进入HC05AT指令模式,对于BT06蓝牙直接上电进入AT模式,用USBT06转TTL模块连接到 ...

  7. [转] Unicode字符编码区间表

    firebug 打UTF8 字符: var res = ""; for(var i=0x80;i< 0xff ;i++){ res += i.toString(16) + & ...

  8. exit命令详解

    基础命令学习目录首页 原文链接:https://www.cnblogs.com/itcomputer/p/4157859.html 用途说明 exit命令用于退出当前shell,在shell脚本中可以 ...

  9. iOS开发学习-资源打包

    图片是被放到Images.xcassets中 1.部署版本在>=iOS8的时候,打包的资源包中的图片会被放到Assets.car 图片被压缩: 2.部署版本在<iOS8的时候,打包的资源包 ...

  10. 1到N中“1”出现的次数

    题目:给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数 思路:刚开始做的时候,是想从1到N进行遍历,其中每个数都出现1的个数加起来,最后得出结果,但是老师让我们找规 ...