版本: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. 图论算法(三) 最短路SPFA算法

    我可能要退役了…… 退役之前,写一篇和我一样悲惨的算法:SPFA 最短路算法(二)SPFA算法 Part 1:SPFA算法是什么 其实呢,SPFA算法只是在天朝大陆OIers的称呼,它的正统名字叫做: ...

  2. sql server 查询表字段的说明备注信息

    SELECT 表名 = case when a.colorder= then d.name else '' end, 表说明 = case when a.colorder= then isnull(f ...

  3. Git那点事儿

    Git的分支你们是怎么管理的?/ Git的分支管理策略 主分支 master 开发分支 develop 功能分支 feature 预发布分支 release bug 分支 fixbug 其它分支 ot ...

  4. Scala集合中的函数(扩展)

    1.拉链(zip) 将两个集合进行 对偶元组合并,可以使用拉链 object Demo_031 { def main(args: Array[String]): Unit = { val list1 ...

  5. fsck知识点记录

    最近处理一个生产环境问题时,碰下一个以下现象,记录一下,便于以后出现类似问题时,快速的查找相应命令 问题现象 由于物理机的内存条出现故障,导致该节点上的所有虚机网络都不通,机房人员修复完物理内存以后, ...

  6. ES日期存储

    前段时间,在用ES时候,关于时间类型遇见点坑,ES版本是5.6.9,.但是在进行存储的时候"2019/01/01"或者是"2019/01/01 11:11:11" ...

  7. Locust性能测试2--登录示例

    无论是做接口自动化还是做压测,解决了登录就离成功进步了一大半,下面做个简单的登录案例,后续再说下数据依赖及参数化等问题 1. 登录 登录示例 from locust import HttpUser, ...

  8. 你竟然不知道Java中可以用 :: 吗?

    简介 Java8中方法引用分为三种,方法引用通过一对双冒号:: 来表示,方法引用是一种函数式接口的另一种书写方式 静态方法引用,通过类名::静态方法名, 如 Integer::parseInt 实例方 ...

  9. Android低功耗蓝牙总结

    这里只列出重点原理内容,更加细节的内容请阅读前面文章 首先要搞清楚一点,我们在 Android 中通过 SDK 获得的蓝牙广播包是经过底层的 SDK 给我们处理过的,是一个长度为 62 的字节数组.这 ...

  10. CODING DevOps 代码质量实战系列第二课: PHP 版

    讲师介绍 杨周 CODING DevOps 架构师 CODING 布道师 连续创业者.DIY/Linux 玩家.知乎小 V,曾在创新工场.百度担任后端开发.十余年一线研发和带队经验,经历了 ToB.T ...