版本:NX9+VS2012+SqlServer2008r2

以前我写过一个NX访问MySQL数据库(增删改查)的文章https://www.cnblogs.com/nxopen2018/p/12297590.html

这次写一下,NX访问SqlServer数据库(增删改查)C#版,使用了ADO.NET技术。

C++版的过一段在来写

其实会一种,在学下一种就容易很多了,万物是相通的,会SQL语句,在知道各个数据库开放的增删改查的API就可以基本使用了。

1.打开SqlServer2008r2,新建一个数据库,新建一张表。

如图所示,本机安装了SqlServer2008r2,使用localhost登录界面。

新建一个数据库和一张表(不会建,自己百度)

2.新建一个NX C#项目,连接数据库

2.1.引入命名空间

using System.Data.SqlClient;

2.2.在Main入口函数处添加如下代码

//创建数据库连接字符串
string SqlStr = "Server=localhost;User Id=sa;Pwd=123456;DataBase=MyData";
SqlConnection con = new SqlConnection(SqlStr);//创建数据库连接对象
con.Open();//打开数据库连接
if (con.State == System.Data.ConnectionState.Open)//判断连接是否打开
{
theUfSession.Ui.DisplayMessage("SQL Server数据库连接开启!",);
con.Close();//关闭数据库连接
}
if (con.State == System.Data.ConnectionState.Closed)//判断连接是否关闭
{
theUfSession.Ui.DisplayMessage("SQL Server数据库连接关闭!", );
}

2.3.演示

3.增加数据

3.1先在SqlServer里写一遍SQL语句。

use MyData
insert into student(学号,姓名) values(,'张三')

执行后结果如下(怎么在SqlServer里写SQL语句,以及怎么执行,自己百度)

3.2去NX C#项目里写如下代码

//创建数据库连接对象
string SqlStr = "Server=localhost;User Id=sa;Pwd=123456;DataBase=MyData";
SqlConnection con = new SqlConnection(SqlStr);//创建数据库连接对象
string strsql = "insert into student(学号,姓名) values(2,李四)";//定义SQL语句
SqlCommand comm = new SqlCommand(strsql, con);//创建SqlCommand对象
if (con.State == System.Data.ConnectionState.Closed)//判断连接是否关闭
{
con.Open();//打开数据库连接
}
//判断ExecuteNonQuery方法返回的参数是否大于0,大于0表示添加成功
if (Convert.ToInt32(comm.ExecuteNonQuery()) > )
{
theUfSession.Ui.DisplayMessage("添加成功!",);
}
else
{
theUfSession.Ui.DisplayMessage("添加失败!", );
}
con.Close();//关闭数据库连接

3.3演示

4.删除数据

4.1先在SqlServer里写一遍SQL语句。

delete from student where 学号 = 

4.2去NX C#项目中添加代码

//创建数据库连接对象
string SqlStr = "Server=localhost;User Id=sa;Pwd=123456;DataBase=MyData";
SqlConnection con = new SqlConnection(SqlStr);//创建数据库连接对象
string strsql = "delete from student where 学号 = 1";//定义SQL语句
SqlCommand comm = new SqlCommand(strsql, con);//创建SqlCommand对象
if (con.State == System.Data.ConnectionState.Closed)//判断连接是否关闭
{
con.Open();//打开数据库连接
}
//判断ExecuteNonQuery方法返回的参数是否大于0,大于0表示添加成功
if (Convert.ToInt32(comm.ExecuteNonQuery()) > )
{
theUfSession.Ui.DisplayMessage("添加成功!",);
}
else
{
theUfSession.Ui.DisplayMessage("添加失败!", );
}
con.Close();//关闭数据库连接

4.3演示

5.修改数据

5.1先在SqlServer里写一遍SQL语句。

UPDATE student SET 姓名 = '王五' WHERE 学号 = 

如果有多个where条件的,可以这样写,中间用AND连接

UPDATE student SET 姓名 = '王五' WHERE 学号 =  AND 学科 = '数学'

5.2去NX C#项目中添加代码

//创建数据库连接对象
string SqlStr = "Server=localhost;User Id=sa;Pwd=123456;DataBase=MyData";
SqlConnection con = new SqlConnection(SqlStr);//创建数据库连接对象
string strsql = "UPDATE student SET 姓名 = '王五' WHERE 学号 = 1";//定义SQL语句
SqlCommand comm = new SqlCommand(strsql, con);//创建SqlCommand对象
if (con.State == System.Data.ConnectionState.Closed)//判断连接是否关闭
{
con.Open();//打开数据库连接
}
//判断ExecuteNonQuery方法返回的参数是否大于0,大于0表示添加成功
if (Convert.ToInt32(comm.ExecuteNonQuery()) > )
{
theUfSession.Ui.DisplayMessage("添加成功!",);
}
else
{
theUfSession.Ui.DisplayMessage("添加失败!", );
}
con.Close();//关闭数据库连接

5.3演示

6.查找数据

6.1先在SqlServer里写一遍SQL语句。

查询整个表的数据

如果表名是数字开头的,执行的时候提示语法错误,要用[]中括号把名字括起来

例如

select * from [3DAAAA]

查询满足搜索条件的数据

6.2去NX C#项目中添加代码(可以加try catch来捕获错误信息)

//创建数据库连接对象
string SqlStr = "Server=localhost;User Id=sa;Pwd=123456;DataBase=MyData";
SqlConnection sqlcon = new SqlConnection(SqlStr); //创建SqlCommand对象
SqlCommand sqlcmd = new SqlCommand("select * from student", sqlcon);
if (sqlcon.State == System.Data.ConnectionState.Closed)//判断连接是否关闭
{
sqlcon.Open();//打开数据库连接
} //使用ExecuteReader方法的返回值创建SqlDataReader对象
SqlDataReader sqldr = sqlcmd.ExecuteReader();
try
{
if (sqldr.HasRows)//判断SqlDataReader对象中是否有数据
{
while (sqldr.Read())//循环读取SqlDataReader对象中的数据
{
string aa = sqldr["学号"] + "," + sqldr["姓名"];//显示读取的详细信息
theUfSession.Ui.DisplayMessage(aa, );
}
}
}
catch (SqlException ex)//捕获数据库异常
{
theUfSession.Ui.DisplayMessage(ex.ToString(), );
}
finally
{
sqldr.Close();//关闭SqlDataReader对象
sqlcon.Close();//关闭数据库连接
}

或者

//创建数据库连接对象
string SqlStr = "Server=localhost;User Id=sa;Pwd=123456;DataBase=MyData";
SqlConnection sqlcon = new SqlConnection(SqlStr); //创建SqlCommand对象
SqlCommand sqlcmd = new SqlCommand("select * from student where 学号 = 1", sqlcon);
if (sqlcon.State == System.Data.ConnectionState.Closed)//判断连接是否关闭
{
sqlcon.Open();//打开数据库连接
} //使用ExecuteReader方法的返回值创建SqlDataReader对象
SqlDataReader sqldr = sqlcmd.ExecuteReader();
try
{
if (sqldr.HasRows)//判断SqlDataReader对象中是否有数据
{
while (sqldr.Read())//循环读取SqlDataReader对象中的数据
{
string aa = sqldr["学号"] + "," + sqldr["姓名"];//显示读取的详细信息
theUfSession.Ui.DisplayMessage(aa, );
}
}
}
catch (SqlException ex)//捕获数据库异常
{
theUfSession.Ui.DisplayMessage(ex.ToString(), );
}
finally
{
sqldr.Close();//关闭SqlDataReader对象
sqlcon.Close();//关闭数据库连接
}

6.3演示

或者

7.更多SQL语句用法请百度

8.补充

8.1.增加数据,可能有的时候需要获取界面输入框的内容,在写到数据库中。

这种情况下, 需要这样写:

用索引的方式

string strsql = "insert into student values('{0}','{1}','{2}','{3}','{4}','{5}','{6}')";//定义SQL语句
//创建数据库连接对象
string SqlStr = "Server=localhost;User Id=sa;Pwd=123456;DataBase=MyData";
SqlConnection con = new SqlConnection(SqlStr);//创建数据库连接对象 int One = ;
string Two = "猪八戒"; string strsql = "insert into student values('{0}','{1}')";//定义SQL语句
strsql = string.Format(strsql, One, Two); SqlCommand comm = new SqlCommand(strsql, con);//创建SqlCommand对象
if (con.State == System.Data.ConnectionState.Closed)//判断连接是否关闭
{
con.Open();//打开数据库连接
}
//判断ExecuteNonQuery方法返回的参数是否大于0,大于0表示添加成功
if (Convert.ToInt32(comm.ExecuteNonQuery()) > )
{
theUfSession.Ui.DisplayMessage("添加成功!", );
}
else
{
theUfSession.Ui.DisplayMessage("添加失败!", );
}

8.2远程连接问题

以上的连接是指数据库装在客户端本机上的,所以用localhost就可以连接

而实际上,不可能每个客户端上都装数据库,应该是客户端上装我们开发的软件程序,

后台服务器上装数据库。远程连接数据库。

NX二次开发-NX访问SqlServer数据库(增删改查)C#版的更多相关文章

  1. NX二次开发-NX访问MySQL数据库(增删改查)

    版本:NX11+VS2013+MySQL5.6(x64)+SQLyog 1.新建一个NX项目(多字节) 2.设置VC++目录(调用MySQL的头文件,dll和lib库文件) 3.设置番茄助手 然后重启 ...

  2. SQLServer数据库增删改查

    一.数据库定义 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库.数据库的操作分为两种形式:一种是直接在数据库管理工具图形化界面进行操作:一种是使用数据库脚本进行操作,数据库脚本可 ...

  3. C#学习笔记(3)——操作sqlserver数据库增删改查

    说明(2017-5-25 16:29:35): 1. VS2010,视图->服务器资源管理器->数据连接->右键添加连接->服务器名(本机可以用点)->选择数据库-> ...

  4. 数据库学习之数据库增删改查(另外解决Mysql在linux下不能插入中文的问题)(二)

    数据库增删改查 增加 首先我们创建一个数据库user,然后创建一张表employee create table employee( id int primary key auto_increment, ...

  5. (转)SQLite数据库增删改查操作

    原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...

  6. Android SQLite 数据库 增删改查操作

    Android SQLite 数据库 增删改查操作 转载▼ 一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NU ...

  7. MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存

    目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...

  8. MySQL数据库(增删改查语句)

    MySQL数据库(增删改查语句)一.登录数据库:---->  mysql -uroot -proot;(对应用户名和密码)二.SQL语句:    数据定义语言DDL  用来定义数据库.表.列,关 ...

  9. Yii2.0高级框架数据库增删改查的一些操作(转)

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...

随机推荐

  1. Spring Cloud Config Client 超时与重试

    简介 有时客户端需要在 config server 无响应时进行重试,以给 config server 时间进行恢复.利用 spring 提供的重试组件,我们可以方便的配置重试机制,包括重试间隔,重试 ...

  2. Git使用之submodule

    入职第一周,就因为clone项目而产生了很大的障碍,花了差不多三四个小时才定位问题并解决,记录一下. 一.问题 当我们在使用Git克隆项目的时候,无法克隆下来一个文件夹.记该文件夹为A,A在远程仓库是 ...

  3. 一文搞懂Java8 Lambda表达式(附带视频教程)

    Lambda表达式介绍 Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁.通过Lambda表达式,可以替代我们以前经常写的匿名内部类来实现接口.Lambda表达式本质是一个 ...

  4. Elasticsearch聚合语句

    聚合的范围是search query过滤出的数据 四种聚合类型: 一.Bucketing 桶聚合,常规的分类然后计算每个分类的文档数量 二.Metric 分类并对一组文档进行sum.avg等数学运算 ...

  5. SpringBoot--- SpringSecurity进行注销,权限控制

    SpringBoot--- SpringSecurity进行注销,权限控制 环境 IDEA :2020.1 Maven:3.5.6 SpringBoot: 2.0.9 (与此前整合的版本2.3.3 不 ...

  6. 【转】Ubuntu下解决Depends: xxx(< 1.2.1) but xxx is to be installed

    在ubuntu下由于更新package不成功,或者误删除了一些文件会出现Depends: xxx(< 1.2.1) but xxx is to be installed解决方法是先试着安装所缺的 ...

  7. LeetCode 92 | 大公司常考的面试题,翻转链表当中指定部分

    今天是LeetCode专题的第58篇文章,我们一起来看看LeetCode 92题,翻转链表II(Reverse LInked List II). 这题的官方难度是Medium,2451个赞同,145个 ...

  8. 第6篇scrum冲刺(5.26)

    一.站立会议 1.照片 2.工作安排 成员 昨天已完成的工作 今天的工作安排 困难 陈芝敏   研究云开发,更新了登录模块,把用户的信息传入数据库了  学习云开发,云函数调用以及数据的前后端传递  遇 ...

  9. Object中toString方法

    在Java中,所有的对象都是继承自Object,自然继承了toString方法,在当使用System,out.println()里面为一个对象的引用时,自动调用toString方法将对象打印出来.如果 ...

  10. python连接mysql中报错1064修改方法

    Python是编程语言,MySQL是数据库,它们是两种不同的技术:要想使Python操作MySQL数据库需要使用驱动.这里选用PyMySQL驱动.下载地址: https://pypi.python.o ...