【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没问题。

目录
打赏
0
0
0
0
33
分享
相关文章
|
4月前
|
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
74 3
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
54 19
学懂C#编程:属性(Property)的概念定义及使用详解
通过深入理解和使用C#的属性,可以编写更清晰、简洁和高效的代码,为开发高质量的应用程序奠定基础。
140 12
JDBC编程安装———通过代码操控数据库
本文,教你从0开始学习JBCD,包括驱动包的下载安装调试设置,以及java是如何通过JBDC实现对数据库的操作,以及代码的分析,超级详细
Unity 游戏引擎 C# 编程:一分钟浅谈
本文介绍了在 Unity 游戏开发中使用 C# 的基础知识和常见问题。从 `MonoBehavior` 类的基础用法,到变量和属性的管理,再到空引用异常、资源管理和性能优化等常见问题的解决方法。文章还探讨了单例模式、事件系统和数据持久化等高级话题,旨在帮助开发者避免常见错误,提升游戏开发效率。
161 4
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
77 1
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
286 3
|
6月前
|
C# 一分钟浅谈:文件系统编程
在软件开发中,文件系统操作至关重要。本文将带你快速掌握C#中文件系统编程的基础知识,涵盖基本概念、常见问题及解决方法。文章详细介绍了`System.IO`命名空间下的关键类库,并通过示例代码展示了路径处理、异常处理、并发访问等技巧,还提供了异步API和流压缩等高级技巧,帮助你写出更健壮的代码。
74 2