【C#编程最佳实践 六】数据库操作相关实践

简介: 【C#编程最佳实践 六】数据库操作相关实践

本篇条目和详细操作均会发生调整,凡是和数据库有关的实践都将在这里记录,本篇使用的数据库为sqlServer。

常用SQL语句总结

关于库,表的操作

  • 查找库内所有具有某个字段的表名
SELECT COLUMN_NAME,TABLE_NAME FROM INFORMATION_SCHEMA.columns WHERE COLUMN_NAME ='TenantID'
  • 查询库内所有表的名称
SELECT NAME,* FROM SYSOBJECTS WHERE XTYPE='U'

存储过程实践

创建与修改

存储过程执行流程

1,首先创建空存储过程,删除多余参数,点击执行,不保存

2,找到创建的存储过程,传入参数,定义返回值和要执行的sql

3,通过传入参数实现sql的动态拼接

标准的存储过程

USE [User]
GO
/****** Object:  StoredProcedure [dbo].[****]    Script Date: 2017/11/28 21:35:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:      <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[****]
(
@tblName   varchar(255),            -- 表名如:'xtest'
@id  uniqueidentifier,    --Guid类型
@tenantId int
)
AS
declare @strSql nvarchar(1000)
print @strSql
set  @strSql=' SELECT * FROM '+@tblName +' where ID= '''+ CONVERT(varchar(40), @id) +''' and TenantID='+  CONVERT(varchar(15), @tenantId)+''
EXECUTE sp_executesql @strSql

检测存储过程

ALTER PROCEDURE [dbo].[****]
(
@id  int,    --int类型
@tblName   varchar(255),           -- 表名如:'xtest'
@application    varchar(255)  
)
AS
declare @strSql nvarchar(1000)
set  @strSql=' SELECT * FROM '+@tblName +' where Application = '''+@application+''' and  TenantID = '+ CONVERT(varchar(255), @id)+''
--print @strSql//第一步
--EXECUTE sp_executesql @strSql 
--exec [dbo].[****]  '203784',  'UserPermission',  'abc' //第一步
--SELECT * FROM UserPermission where [Application]='abc' and  TenantID= 6666 //第二步
第一步:写上如上所示的第一步部分,注释掉存储过程的生成,查看错误出现在哪儿,后边三个是参数传递,以逗号隔开
第二步:存储过程执行无误后,写上如上所示的第二步部分,检测sql语句是否执行成功

测试方法:传入参数,得到自己想要的值则sql没问题。

相关文章
|
1月前
|
存储 安全 数据库连接
C#深度揭秘:常量的魅力和实践,一文让你从新手到专家
C#深度揭秘:常量的魅力和实践,一文让你从新手到专家
18 0
|
1月前
|
C#
24. C# 编程:用户设定敌人初始血值的实现
24. C# 编程:用户设定敌人初始血值的实现
22 0
|
1月前
|
SQL 数据库 C#
C# .NET面试系列十一:数据库SQL查询(附建表语句)
#### 第1题 用一条 SQL 语句 查询出每门课都大于80 分的学生姓名 建表语句: ```sql create table tableA ( name varchar(10), kecheng varchar(10), fenshu int(11) ) DEFAULT CHARSET = 'utf8'; ``` 插入数据 ```sql insert into tableA values ('张三', '语文', 81); insert into tableA values ('张三', '数学', 75); insert into tableA values ('李四',
67 2
C# .NET面试系列十一:数据库SQL查询(附建表语句)
|
25天前
|
存储 NoSQL Java
Java数据库编程指南:实现高效数据存储与访问
【4月更文挑战第2天】Java开发者必须掌握数据库编程,尤其是JDBC,它是连接数据库的标准接口。使用Spring JDBC或JPA能简化操作。选择合适的JDBC驱动,如MySQL Connector/J,对性能至关重要。最佳实践包括事务管理、防SQL注入、优化索引和数据库设计。NoSQL数据库如MongoDB也日益重要,Java有对应的驱动支持。理解这些概念和技术是构建高效数据库应用的基础。
Java数据库编程指南:实现高效数据存储与访问
|
2天前
|
SQL 关系型数据库 MySQL
Golang数据库编程详解 | 深入浅出Go语言原生数据库编程
Golang数据库编程详解 | 深入浅出Go语言原生数据库编程
|
3天前
|
SQL 关系型数据库 MySQL
第十三章 Python数据库编程
第十三章 Python数据库编程
|
4天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
|
4天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互
ava从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互
|
5天前
|
存储 SQL 数据库
数据库库表结构设计:原理、实例与最佳实践
数据库库表结构设计:原理、实例与最佳实践
18 0
|
7天前
|
存储 安全 网络安全
C#编程的安全性与加密技术
【4月更文挑战第21天】C#在.NET框架支持下,以其面向对象和高级特性成为安全软件开发的利器。本文探讨C#在安全加密领域的应用,包括使用System.Security.Cryptography库实现加密算法,利用SSL/TLS保障网络传输安全,进行身份验证,并强调编写安全代码的重要性。实际案例涵盖在线支付、企业应用和文件加密,展示了C#在应对安全挑战的同时,不断拓展其在该领域的潜力和未来前景。