这次我使用ADO.NET来插入一条数据,到数据库中。主用到存储过程。我不想每次都是用SQL文本的形式了,那样始终没有进步~~~

下面首先,我把我这次练习要用到的数据库脚本,贴出来:

 USE master    --使用系统数据库
 GO
 IF EXISTS(SELECT * FROM sysdatabases WHERE name=N'DB_MyStudentLife')
 DROP DATABASE [DB_MyStudentLife];  --如果要创建的数据库存在的话,就删除
 GO
 CREATE DATABASE [DB_MyStudentLife] --创建数据库
 GO
 USE [DB_MyStudentLife]       --使用数据库
 GO
 IF EXISTS(SELECT * FROM sysobjects WHERE name=N'MyClass')
 DROP TABLE [MyClass]           --如果要创建的数据表存在的话,就删除(注意sysobjects,一定要全部是小写的,不然有错误,不能写成大写的。)
 GO
 CREATE TABLE MyClass                                --创建数据表
 (
     C_ID INT NOT NULL PRIMARY KEY,               --班级编号
     C_Name NVARCHAR() not null,               --班级名称
     C_Descr nvarchar(max) not null               --班级简介

 );
 GO
 IF EXISTS(SELECT * FROM sysobjects WHERE name=N'MyStudent')
 DROP TABLE MyStudent
 GO
 CREATE TABLE MyStudent
 (
 S_ID int not null primary key,   --学号
 S_Name nvarchar() not null,                  --姓名
 S_Gender ) not null,                     --性别
 S_Address nvarchar(max) not null ,             --地址
 S_Phone nvarchar()not null,                  --电话
 S_Age int not null,                            --年龄
 S_Birthday datetime not null,                  --生日
 S_CardID int not null,                         --身份证号码
 S_CID  int not null references MyClass(C_ID)   --班级编号

 );

创建数据库,创建数据表语句

接着大家选中刚才执行脚本,创建好的数据库,然后使用我下面的数据,向数据库表里面添加数据吧

 insert into MyClass(C_ID,C_Name,C_Descr)values(,'软件1108班','武汉软件工程职业学院');
 insert into MyClass(C_ID,C_Name,C_Descr)values(,'软件1107班','武汉软件工程职业学院');
 insert into MyClass(C_ID,C_Name,C_Descr)values(,'实验班','武汉软件工程职业学院');

 insert into MyStudent(S_ID,S_Name,S_Gender,S_Age,S_Birthday,S_CardID,S_Phone,S_Address,S_CID)values();
 insert into MyStudent(S_ID,S_Name,S_Gender,S_Age,S_Birthday,S_CardID,S_Phone,S_Address,S_CID)values();
 insert into MyStudent(S_ID,S_Name,S_Gender,S_Age,S_Birthday,S_CardID,S_Phone,S_Address,S_CID)values();
 insert into MyStudent(S_ID,S_Name,S_Gender,S_Age,S_Birthday,S_CardID,S_Phone,S_Address,S_CID)values();
 insert into MyStudent(S_ID,S_Name,S_Gender,S_Age,S_Birthday,S_CardID,S_Phone,S_Address,S_CID)values();
 insert into MyStudent(S_ID,S_Name,S_Gender,S_Age,S_Birthday,S_CardID,S_Phone,S_Address,S_CID)values();
 insert into MyStudent(S_ID,S_Name,S_Gender,S_Age,S_Birthday,S_CardID,S_Phone,S_Address,S_CID)values();
 insert into MyStudent(S_ID,S_Name,S_Gender,S_Age,S_Birthday,S_CardID,S_Phone,S_Address,S_CID)values();
 insert into MyStudent(S_ID,S_Name,S_Gender,S_Age,S_Birthday,S_CardID,S_Phone,S_Address,S_CID)values();
 insert into MyStudent(S_ID,S_Name,S_Gender,S_Age,S_Birthday,S_CardID,S_Phone,S_Address,S_CID)values();
 insert into MyStudent(S_ID,S_Name,S_Gender,S_Age,S_Birthday,S_CardID,S_Phone,S_Address,S_CID)values();
 insert into MyStudent(S_ID,S_Name,S_Gender,S_Age,S_Birthday,S_CardID,S_Phone,S_Address,S_CID)values();
 insert into MyStudent(S_ID,S_Name,S_Gender,S_Age,S_Birthday,S_CardID,S_Phone,S_Address,S_CID)values();
 insert into MyStudent(S_ID,S_Name,S_Gender,S_Age,S_Birthday,S_CardID,S_Phone,S_Address,S_CID)values();
 insert into MyStudent(S_ID,S_Name,S_Gender,S_Age,S_Birthday,S_CardID,S_Phone,S_Address,S_CID)values();
 insert into MyStudent(S_ID,S_Name,S_Gender,S_Age,S_Birthday,S_CardID,S_Phone,S_Address,S_CID)values();
 insert into MyStudent(S_ID,S_Name,S_Gender,S_Age,S_Birthday,S_CardID,S_Phone,S_Address,S_CID)values();

插入数据到数据库表中

说明一下,等会我要向MyClass表中插入数据,现在为这个表创建一个插入的存储过程:

 IF OBJECT_ID('Ins_ClasseD','P') IS NOT NULL
   DROP PROCEDURE  Ins_ClasseD
   GO
   CREATE PROCEDURE Ins_ClasseD
    @C_ID int  ,
    @C_Name nvarchar()  ,
    @C_Descr nvarchar(max)
    AS
    INSERT INTO dbo.MyClass
            ( C_ID, C_Name, C_Descr )
    VALUES  ( @C_ID, -- C_ID - int
              @C_Name, -- C_Name - nvarchar()
              @C_Descr  -- C_Descr - nvarchar(max)
              );

    GO 

给MyClass表存储过程

下面开始程序实现:

我是复习,ADO.NET,现在就随便建了一个控制台的应用程序,来开始我的测试:

注意;在下面的例子中,为了尽可能简单易于理解,我没有把连接字符串的那部分代码,放到配置文件中。

如果要放的话,要用到System.Configuration命名空间,还有一个ConfigurationManager类..具体的细节就不说了。

请看具体实现代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;

namespace ADO.NET插入一条数据到数据库中
{
    class Program
    {
        //连接字符串
        private static string sqlCon = "server=.;database=DB_MyStudentLife;uid=sa;pwd=Password_1";
        static void Main(string[] args)
        {
            //1创建连接对象(连接字符串)
            SqlConnection scon = new SqlConnection(sqlCon);

            //2创建命令对象(为命令对象设置属性)
            SqlCommand scmd = new SqlCommand();
            scmd.CommandText = "Ins_ClasseD";
            scmd.CommandType = CommandType.StoredProcedure;  //这里我使用存储过程来插入数据
            scmd.Connection = scon;

            //3打开数据库连接
            scon.Open();

            //设置参数
            scmd.Parameters.Add());
            scmd.Parameters.Add(new SqlParameter("@C_Name", "测试班"));
            scmd.Parameters.Add(new SqlParameter("@C_Descr", "软件测试技术"));
            //4发送命令
           int result= scmd.ExecuteNonQuery();

            //5处理数据
           )
           {
               Console.WriteLine("插入数据成功");
           }
           else
           {
               Console.WriteLine("插入数据失败");
           }            //6最后一步,差点忘记了,一定要关闭连接            scon.Close();

           Console.ReadKey();

        }
    }
}

程序执行玩之后的效果图:

ADO.NET学习系列(二)的更多相关文章

  1. MyBatis学习系列二——增删改查

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...

  2. Maven学习系列二(1-5)

    Maven学习系列二(1-5) 本文转自 QuantSeven 博客,讲解精炼易懂,适合入门,链接及截图如下 http://www.cnblogs.com/quanyongan/category/47 ...

  3. scrapy爬虫学习系列二:scrapy简单爬虫样例学习

    系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备:      http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...

  4. DocX开源WORD操作组件的学习系列二

    DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...

  5. [转]ASP.NET MVC学习系列(二)-WebAPI请求 传参

    [转]ASP.NET MVC学习系列(二)-WebAPI请求 传参 本文转自:http://www.cnblogs.com/babycool/p/3922738.html ASP.NET MVC学习系 ...

  6. RabbitMQ学习系列二-C#代码发送消息

    RabbitMQ学习系列二:.net 环境下 C#代码使用 RabbitMQ 消息队列 http://www.80iter.com/blog/1437455520862503 上一篇已经讲了Rabbi ...

  7. .net reactor 学习系列(二)---.net reactor界面各功能说明

    原文:.net reactor 学习系列(二)---.net reactor界面各功能说明         安装了.net reactor之后,可以在安装目录下找到帮助文档REACTOR_HELP.c ...

  8. 图机器学习(GML)&图神经网络(GNN)原理和代码实现(前置学习系列二)

    项目链接:https://aistudio.baidu.com/aistudio/projectdetail/4990947?contributionType=1 欢迎fork欢迎三连!文章篇幅有限, ...

  9. ASP.NET MVC学习系列(二)-WebAPI请求

    继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现 ...

  10. ASP.NET MVC学习系列(二)-WebAPI请求(转)

    转自:http://www.cnblogs.com/babycool/p/3922738.html 继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的g ...

随机推荐

  1. 转:TinyXM--优秀的C++ XML解析器

    读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好. TinyXML是一个开源的解 ...

  2. Web前端知识技能大汇总

    项目起源 还记得@jayli 的这幅前端知识结构图么. 图片的形式具有诸多的不便.缺失源图的我们,无法为此图贡献些什么,随着时间的迁移,或许有些技术点会发生改变,所以有了这个GitHub项目.我们可以 ...

  3. css强制换行和超出隐藏实现

        一.强制换行1 word-break: break-all; 只对英文起作用,以字母作为换行依据. 2 word-wrap: break-word; 只对英文起作用,以单词作为换行依据. 3 ...

  4. MySql 执行语句错误 Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

    关于用Power Designer 生成sql文件出现 错误  [Err] 1064 - You have an error in your SQL syntax; check the manual ...

  5. 解决mint17-linux里chrome一搞就弹出“登陆密钥环”的框框

    摘自:https://sites.google.com/site/easylinuxtipsproject/tips#TOC-Make-the-keyring-password-on-your-com ...

  6. Windows 64位 安装Oracle instantclient 官方绿色版和PL/SQL Developer 总结

    原文: http://blog.csdn.net/kimsoft/article/details/8751267 操作系统:Windows 7 64位旗舰 要求,安装PL/SQL Developer用 ...

  7. [转]jQuery.Autocomplete实现自动完成功能(详解)

    本篇文章除了介绍jquery.autocomplete基本参数外,主要说明jquery.autocomplete的数据源的格式问题.     1.jquery.autocomplete参考地址 htt ...

  8. iOS touch事件单击双击区分响应

    如果您的 iPhone 应用里有个 view,既有单击操作又有双击操作.用户双击 view 时,总是先执行一遍单击的操作再执行双击的操作.所以直接判断时就会发现不能直接进入双击操作.下面是区分 tou ...

  9. 从一个例子看现代C++的威力

    引子 最近准备重构一下我的kapok库,让meta函数可以返回元素为kv的tuple,例如: struct person { std::string name; int age; META(name, ...

  10. DataGridView中添加CheckBox列用于选择行

    DataGridView中添加CheckBox列用于选择行 1,编辑DataGridView,添加一列 CheckBox ,Name 赋值为 "select",如下图: 2,取消 ...