版本: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. CSS3动画旋转——(图片360°旋转)

    今天在重构网页特效的时候,想着用到一个css3的旋转特效.简单来一个demo. html <div class="box"> <img src="./y ...

  2. VM获取子网掩码和网关

  3. SpringCloud简记_part2

    Zookeeper服务注册与发现 1)Eureka停止更新了,你怎么办? https://github.com/Netflix/eureka/wiki 2)SpringCloud整合Zookeeper ...

  4. JavaScript学习系列博客_1_JavaScript简介

    这个系列博客主要用来记录本人学习JavaScript的笔记,从0开始,即使有些知识我也是知道的.但是会经常忘记,干脆就写成博客,没事的时候翻来看一看,留下一点学习的痕迹也好.可能写博客的水平暂时不太好 ...

  5. golang 三个点 '...' 的用法

    package main import "fmt" func main(){ fmt.Println("Hello, World!") aaa := []str ...

  6. 在vmware上MBR方式安装archLinux

    进入安装盘 设置好vmware的相关选项,进入下载好的系统中,显示如下 联网 输入以下命令,后面加&使其后台运行 dhcpcd & 然后ping一下检测是否联网 ping baidu. ...

  7. 4GL之Non-SCROLLING CURSOR

    在4gl中CURSOR可以说是每一个程序中都会有的,而CURSOR又分为三种SCROLLING CURSOR.Non-SCROLLING CURSOR.LOCKING CURSOR. Non-SCRO ...

  8. 焦大:seo思维光年(上)检索的价值观

    http://www.wocaoseo.com/thread-55-1-1.html 检索的价值观是什么?最近很多人咨询我这个问题,因为在百度上根本找不到相关的资料,其实这个东西也是我自己总结的,比如 ...

  9. JavaScript闭包(内存泄漏、溢出以及内存回收),超直白解析

    1 引言 变量作用域 首先我们先铺垫一个知识点--变量作用域: 变量根据作用域的不同分为两种:全局变量和局部变量. 函数内部可以使用全局变量. 函数外部不可以使用局部变量. 当函数执行完毕,本作用域内 ...

  10. Redis高可用——副本机制

    目录 概念 配置 同步方式 起点 主从握手 部分同步 完全同步 执行完全同步判断条件 完全同步代码实现 为实现Redis服务的高可用,Redis官方为我们提供了副本机制(或称主从复制)和哨兵机制.副本 ...