NX二次开发-NX访问SqlServer数据库(增删改查)C#版
版本: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#版的更多相关文章
- NX二次开发-NX访问MySQL数据库(增删改查)
版本:NX11+VS2013+MySQL5.6(x64)+SQLyog 1.新建一个NX项目(多字节) 2.设置VC++目录(调用MySQL的头文件,dll和lib库文件) 3.设置番茄助手 然后重启 ...
- SQLServer数据库增删改查
一.数据库定义 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库.数据库的操作分为两种形式:一种是直接在数据库管理工具图形化界面进行操作:一种是使用数据库脚本进行操作,数据库脚本可 ...
- C#学习笔记(3)——操作sqlserver数据库增删改查
说明(2017-5-25 16:29:35): 1. VS2010,视图->服务器资源管理器->数据连接->右键添加连接->服务器名(本机可以用点)->选择数据库-> ...
- 数据库学习之数据库增删改查(另外解决Mysql在linux下不能插入中文的问题)(二)
数据库增删改查 增加 首先我们创建一个数据库user,然后创建一张表employee create table employee( id int primary key auto_increment, ...
- (转)SQLite数据库增删改查操作
原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...
- Android SQLite 数据库 增删改查操作
Android SQLite 数据库 增删改查操作 转载▼ 一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NU ...
- MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存
目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...
- MySQL数据库(增删改查语句)
MySQL数据库(增删改查语句)一.登录数据库:----> mysql -uroot -proot;(对应用户名和密码)二.SQL语句: 数据定义语言DDL 用来定义数据库.表.列,关 ...
- Yii2.0高级框架数据库增删改查的一些操作(转)
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
随机推荐
- 图论算法(三) 最短路SPFA算法
我可能要退役了…… 退役之前,写一篇和我一样悲惨的算法:SPFA 最短路算法(二)SPFA算法 Part 1:SPFA算法是什么 其实呢,SPFA算法只是在天朝大陆OIers的称呼,它的正统名字叫做: ...
- sql server 查询表字段的说明备注信息
SELECT 表名 = case when a.colorder= then d.name else '' end, 表说明 = case when a.colorder= then isnull(f ...
- Git那点事儿
Git的分支你们是怎么管理的?/ Git的分支管理策略 主分支 master 开发分支 develop 功能分支 feature 预发布分支 release bug 分支 fixbug 其它分支 ot ...
- Scala集合中的函数(扩展)
1.拉链(zip) 将两个集合进行 对偶元组合并,可以使用拉链 object Demo_031 { def main(args: Array[String]): Unit = { val list1 ...
- fsck知识点记录
最近处理一个生产环境问题时,碰下一个以下现象,记录一下,便于以后出现类似问题时,快速的查找相应命令 问题现象 由于物理机的内存条出现故障,导致该节点上的所有虚机网络都不通,机房人员修复完物理内存以后, ...
- ES日期存储
前段时间,在用ES时候,关于时间类型遇见点坑,ES版本是5.6.9,.但是在进行存储的时候"2019/01/01"或者是"2019/01/01 11:11:11" ...
- Locust性能测试2--登录示例
无论是做接口自动化还是做压测,解决了登录就离成功进步了一大半,下面做个简单的登录案例,后续再说下数据依赖及参数化等问题 1. 登录 登录示例 from locust import HttpUser, ...
- 你竟然不知道Java中可以用 :: 吗?
简介 Java8中方法引用分为三种,方法引用通过一对双冒号:: 来表示,方法引用是一种函数式接口的另一种书写方式 静态方法引用,通过类名::静态方法名, 如 Integer::parseInt 实例方 ...
- Android低功耗蓝牙总结
这里只列出重点原理内容,更加细节的内容请阅读前面文章 首先要搞清楚一点,我们在 Android 中通过 SDK 获得的蓝牙广播包是经过底层的 SDK 给我们处理过的,是一个长度为 62 的字节数组.这 ...
- CODING DevOps 代码质量实战系列第二课: PHP 版
讲师介绍 杨周 CODING DevOps 架构师 CODING 布道师 连续创业者.DIY/Linux 玩家.知乎小 V,曾在创新工场.百度担任后端开发.十余年一线研发和带队经验,经历了 ToB.T ...