欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

C#调用数据库中procedure_.NET调用存储过程实现查询例子

程序员文章站 2021-11-23 19:34:40
...

简介

我有这样一个需求、那就是要访问数据库中的一个储存过程procedure 、那么实现流程是这样的

首先实例化SqlConnection的存储过程、设置的connectionString和打开/关闭连接

实例的SqlCommand并设置类似的CommandType、CommandMode属性和添加参数

基于以上两个类、我创建了一个类、它结合了两个类、并从存储过程的返回值


源代码

要使用这个类请下载附件中的文件、并把类文件到您的Visual Studio的C#类库项目

让数据库类;导入CustomDatabase命名空间的顶部代码

using CustomDatabase;


ExecuteCommandScalar()

当你执行存储produre和存储过程只得到整数返回值此方法非常有用

ExecuteCommandNonQuery(OUT INT NumberRowsAffected)

在存储produre执行保存或更新命令、并得到受影响的数据库中的行数

ExecuteCommandReader(参考DataTable中oTable)

在存储过程中执行select命令、并得到了填充DataTable中的ref参数的资料中

代码示例、使用ExecuteCommandReader(ref DataTable oTable)

private int ManageCredential(ref string Token)
{
	DataTable oTable = new DataTable();
	int ReturnVal;
	using(Database db = new Database(connection_string))
	{
		try
		{
			db.Open();
			db.CommandText = "ManageCredential";
			db.AddParameter("@login_name", _username, DbType.String);
			db.AddParameter("@password", _password, DbType.String);
			db.AddParameter("@session_token", _session_token, DbType.String);               
			ReturnVal = db.ExecuteCommandReader(ref oTable);
			if (ReturnVal == 1)
			{
				if (oTable.Rows.Count > 0)
				{
					DataRow oRow = oTable.Rows[0];
					Token = oRow["session_token"].ToString();
				}
			}
		}
		finally
		{
			db.Close();
		}
		return ReturnVal;
	}
}


存储过程代码

ALTER PROCEDURE [dbo].[ManageCredential]
    @login_name VARCHAR(100),
    @password VARCHAR(100) =  NULL,
    @session_token VARCHAR(100) = NULL
AS
BEGIN
    IF EXISTS(SELECT * FROM tbl_name  WHERE login_name COLLATE
		Latin1_General_CS_AS = @login_name AND password COLLATE
		Latin1_General_CS_AS = @password)
		BEGIN  
			SELECT session_token FROM tbl_name WHERE login_name
			COLLATE Latin1_General_CS_AS = @login_name RETURN 1;
		END
	ELSE
		BEGIN
			RETURN 0;
		END
END


C#调用代码

using(Database db = new Database(
	ConfigurationManager
	.ConnectionStrings["con"]
	.ConnectionString){}
db.Open(); // Open the Connection
db.CommandText = "ManageCredential";
db.AddParameter("@login_name", _username, DbType.String);


最后我把整个DB操作类分享给大家链接: http://dwtedx.com/download.html?bdkey=s/193cWQ 密码: yn5f