Tag: stored procedures

从C#中的存储过程中捕获错误

我有一个存储过程,用于在登录期间validation用户。 如果成功则返回用户实体,这样做效果很好! 我的问题是,如果它不起作用,我会在SP中引发错误,如何捕获此错误并以最佳方式使用它? 现在我得到nullrefference,这是代码:存储过程: ALTER PROCEDURE getEmployee ( @username nvarchar(50), @password nvarchar(50) ) AS DECLARE @Error_MSG nvarchar(50) BEGIN IF EXISTS (select * from Employee where eUsername = @username AND pword = @password) begin select * from Employee where eUsername = @username AND pword = @password END ELSE BEGIN SET @Error_MSG = ‘Wrong password, or user […]

C# – 使用TableAdapter从存储过程返回单个值返回null

我不明白,但我添加到表适配器的存储过程只返回null值。 它应该返回一个简单的整数值。 在我使用数据集desinger的预览中,我可以清楚地得到我想要的整数值。 但由于某种原因,我无法从我的代码中获得价值。 我按照MSDN库的说明: http : //msdn.microsoft.com/en-us/library/37hwc7kt(VS.80).aspx 我的c#代码是: humansDataSetTableAdapters.ProfilesTableAdapter tableAdapter = new humansDataSetTableAdapters.ProfilesTableAdapter(); int returnValue = (int)tableAdapter.getSample(); Console.Write(returnValue); 我的存储过程getSample的代码是: DECLARE @r int SET @r = 7 RETURN @r 任何人都可以告诉我如何解决这个问题? 任何帮助将不胜感激!

SqlDbType枚举映射 – C#

我应该将SqlDbType枚举中的值用于numeric T-SQL数据类型?

将DataTable作为参数发送到存储过程

我正在尝试使用c#,。net 2.0和SQLServer 2012 Express将DataTable发送到存储过程。 这大致就是我正在做的事情: //define the DataTable var accountIdTable = new DataTable(“[dbo].[TypeAccountIdTable]”); //define the column var dataColumn = new DataColumn {ColumnName = “[ID]”, DataType = typeof (Guid)}; //add column to dataTable accountIdTable.Columns.Add(dataColumn); //feed it with the unique contact ids foreach (var uniqueId in uniqueIds) { accountIdTable.Rows.Add(uniqueId); } using (var sqlCmd = new SqlCommand()) { […]

对于ReturnValue参数值,Dapper获取“指定的强制转换无效。”

我正在尝试使用SCOPE_IDENTITY将长主键返回到c#,使用DynamicParameter的ReturnValue选项。 以下是Dapper网站的示例代码: var p = new DynamicParameters(); p.Add(“@a”, 11); p.Add(“@b”, dbType: DbType.Int32, direction: ParameterDirection.Output); p.Add(“@c”, dbType: DbType.Int32, direction: ParameterDirection.ReturnValue); cnn.Execute(“spMagicProc”, p, commandType: commandType.StoredProcedure); int b = p.Get(“@b”); int c = p.Get(“@c”); 我宁愿做以下操作,而不是返回int,因为我的主键字段应该是bigint var p = new DynamicParameters(); p.Add(“@a”, 11); p.Add(“@b”, dbType: DbType.Int32, direction: ParameterDirection.Output); p.Add(“@c”, dbType: DbType.Int64, direction: ParameterDirection.ReturnValue); cnn.Execute(“spMagicProc”, p, commandType: commandType.StoredProcedure); int b […]

Linq存储过程返回XML

我正在使用Entity Framework代码优先方法。 我想从DbContext类调用存储过程并获取XML输出。 存储过程(SQL Server): CREATE PROCEDURE xml_test AS BEGIN DECLARE @xml1 xml SET @xml1 = (SELECT * from Product FOR XML RAW) SELECT @xml1 AS my_xml END LINQentity framework: using (DBContext db = new DBContext()) { var ProductList = await db.Database.ExecuteSqlCommandAsync(“exec xml_test”); } 这里ProductList列表返回-1。 我想获取存储过程返回的xml输出。 注意:我也尝试了类似的方法: ExecuteSqlCommand,SqlQuery没有帮助。

将字符串列表传递给存储过程

使用,SQL Server 2012,我想创建一个存储过程,传入一个字符串列表并检查每个条目.Iv将列表添加到一个逗号分隔字符串’UserGroupsAllowedToViewMap’。 这是为一个条目工作,但我需要检查它的一些条目。 public DataTable GetMapsWithWorkspaceForUserGroups(int workspaceID, string UserGroupsAllowedToViewMap) { DataTable mapDets = new DataTable(); SqlCommand oComm = new SqlCommand(); SqlParameter spParam_WrkSpaceId = new SqlParameter(); SqlParameter spParam_ViewMap = new SqlParameter(); SqlParameter[] spParams = new SqlParameter[2]; SqlDataAdapter daUserMaps = new SqlDataAdapter(); try { spParam_WrkSpaceId.ParameterName = “@workspaceID”; spParam_WrkSpaceId.Value = workspaceID; spParams[0] = spParam_WrkSpaceId; spParam_ViewMap.ParameterName = “@ViewMap”; […]

如何使用具有通用数据库的Enterprise库获取存储过程的参数

当我使用它时,我得到以下exception Parameter discovery is not supported for connections using GenericDatabase. You must specify the parameters explicitly, or configure the connection to use a type deriving from Database that supports parameter discovery. 除了这个程序之外还有正确的方法吗? 编辑 Database db = CustomDbFactory.CreateDataBase(connStrName); DbCommand command = db.DbProviderFactory.CreateCommand(); command.CommandText = @spName; command.CommandType = CommandType.StoredProcedure; db.DiscoverParameters(command); …

entity framework查询的服务器端执行与存储过程相结合

是否可以从ObjectQuery调用StoredProcedure? 基本上我想动态构建一个查询并在服务器端执行它。 您可以将每个查询想象成搜索的一部分,您可以将不同的条件与“和”或“或”组合在一起。 对于像这样创建的ObjectQueries,它工作得很好。 var query1 = from a in objectContext.Articles where a.Name = ‘SOMETHING’ select new ResultType { ArticleId = a.ArticleId, Name = a.Name }; var query2 = from a in objectContext.Articles where a.Name = ‘SOMETHING ELSE’ select new ResultType { ArticleId = a.ArticleId, Name = a.Name }; query1 = query1.Intersect(query2); // or union […]

是否可以使用LINQ从存储过程返回返回值和结果集

寻找关于获取返回值和结果集的最干净方法的建议(不将引用的参数传递给存储的proc)。 我的存储过程具有返回值以显示错误等,它们以select语句结束以获取信息。 使用常规命令,我将创建一个输出参数,该参数将保存返回值。 我无法更改db中的存储过程,因此除了返回值之外,我无法传递不同的输出参数。 想法?