【将参数传递给c#中的sql存储过程】教程文章相关的互联网学习教程文章

c# – 存储过程默认值【代码】

谈到SQL,我是新手.使用如下参数创建存储过程时:@executed bit, @failure bit, @success bit, @testID int,@time float = 0, @name varchar(200) = '', @description varchar(200) = '', @executionDateTime nvarchar(max) = '', @message nvarchar(max) = ''这是T-SQL中默认值的正确形式?我试图使用NULL而不是”. 当我试图通过C#执...

c# – 如果我运行一个需要5分钟才能完成的存储过程,我的代码序列会在存储过程完成之前继续吗?【代码】

如果我有一个运行存储过程的程序,运行大约需要5分钟,例如:Database.RunJob(); -- takes 5 mins to complete MessageBox.Show("Hi");问题 – 在Database.RunJob()完成之前,消息框是否显示“Hi”? 如果是这样,在继续下一行代码之前,如何确保查询完成?解决方法:信息不足,无法给出有意义的答案. 我们可以给出的最佳答案是:它取决于Database.RunJob()是同步还是异步. >如果.RunJob是同步的(即,在当前线程上运行),那么在.RunJob完成之...

c# – 关于使用XML作为存储过程参数和返回类型的意见

这对我来说是新的.我有一个新的老板,他坚持认为我们从现在开始的每一个查询都是带有XML序列化参数和返回类型的sproc. 我还没有进行过任何测试,但这在很多方面让我感觉有些过分,可能是性能杀手.你有什么经历?解决方法:虽然它是一个明显的性能杀手(想象一下解析了几个从sproc返回的XML),但它更像是一个生产力,可扩展性和可维护性杀手.在T-SQL中使用XML并不是无缝无缝的.支持将是一场噩梦:想象一下,在结果集中添加一个列,这将导致序...

c# – 在Entity Framework Core 2.0中执行存储过程【代码】

有一个方案来执行存储过程并读取EF Core中的返回值,返回单个值. 我尝试使用此代码,但这不起作用.我知道ExecuteSqlCommand不适用于select,只能用于更新数据库.var test = context.Database.ExecuteSqlCommand("SPName");存储过程只有一个select语句,如Select’athvalvalue’ 寻找任何替代方法来获取存储过程返回的数据.解决方法: DbCommand cmd = ctx.Database.GetDbConnection().CreateCommand();cmd.CommandText = "SPName";cmd....

c# – 何时使用存储过程而不是将任何ORM与编程逻辑一起使用?

大家好我想知道什么时候我更喜欢编写存储过程来编写编程逻辑并使用ORM或其他东西来提取数据.解决方法:存储过程在服务器端执行. 这意味着处理大量数据不需要通过网络连接传递这些数据. 此外,使用存储过程,您可以构建一致的复杂业务逻辑. 比如,每次插入事务时都需要更新帐户余额,并且需要一次插入多个事务. 您可以使用输入传递表变量或临时表,并在过程中发出基于集合的SQL语句,而不是使用触发器(在许多系统中使用低效的逐记录方法实现...

c# – Ajax webmethod无法在第一次尝试时触发存储过程【代码】

我有一个webmethod在第一次尝试期间无法触发存储过程(我想在建立新连接时).我得到内部错误服务器作为错误Ajax消息.但是,如果我从URL地址返回返回,则执行存储过程并且页面可以正常工作,就像它们应该的那样.然后,如果我让页面保持一段时间不活动,然后尝试建立新连接,则会出现同样的问题. 我花了最近2天试图通过检查参数来识别问题,从web方法中删除大部分代码,最后我能够将问题跟踪到这个存储过程.CREATE PROCEDURE [dbo].[spUnionSer...

c# – 如何使用Entity Framework 6将数据列表传递给存储过程

我正在尝试使用Entity Framework Database First将数据列表从C#传递到SQL Server存储过程. SO和其他地方有很多关于这个问题的文章,但是将变量数据传递给存储过程以及从数据库返回变量数据的内容并不明显.他们也倾向于专注于调用存储过程的代码,但我无法做到这一点. 在SSMS中创建并测试了用户定义的表类型和存储过程.问题发生在C#中.更新模型(.edmx文件)时,会发出以下警告:Warning 4 Error 6005: The function ‘uspGetBusyPersons...

C#:如何使用并行性设置存储过程执行或改善执行时间?【代码】

如果我的问题太愚蠢或者是重复,我道歉,但我找不到任何解决方案.感谢您的任何建议或解答! 在我的ASP.NET MVC 5项目中,我从一个包含超过150万条记录的SQL Server表中获取数据. 为了防止SQL注入,我总是只使用参数化查询并生成存储过程. 例如,我发送给服务器的一个查询:using (SqlConnection connection = new SqlConnection(connectionString)) {SqlCommand sqlCommand = new SqlCommand("SELECT TOP 5 NAMEFROM TABLE_NAME WHERE C...

c# – 查询较新的记录时,使用存储过程缓慢查询【代码】

对不起,下面的文字墙… 我这里有一个奇怪的问题.我有一个很大的表,在过去几天存储来自Exchange 2007的邮件跟踪日志信息.记录数量为数百万(约10-12百万),每30分钟一次,我通过PowerShell计划任务从所有传输服务器批量插入任何新日志. 每晚一次我运行一个维护任务来清除任何超过一天的日志,以便表格不会变得太大,但是如果可以的话我想保持日志更长一点. 该表称为MessageTracking,并且具有一个主键,即IDENTITY int列,[MessagelogID],每...

c# – 将DataTable作为参数发送到存储过程【代码】

我正在尝试使用c#,.net 2.0和SQLServer 2012 Express将DataTable发送到存储过程. 这大致就是我正在做的事情://define the DataTablevar accountIdTable = new DataTable("[dbo].[TypeAccountIdTable]");//define the columnvar dataColumn = new DataColumn {ColumnName = "[ID]", DataType = typeof (Guid)};//add column to dataTableaccountIdTable.Columns.Add(dataColumn);//feed it with the unique contact idsforeach (va...

c# – EF6无法导入存储过程【代码】

这是存储过程的简化版本ALTER PROCEDURE [dbo].[StoredProc1] (@PageIndex INT = 1,@RecordCount INT = 20,@Gender NVARCHAR(10) = NULL ) AS BEGINSET NOCOUNT ON ;WITH tmp1 AS ( SELECT u.UserId, MIN(cl.ResultField) AS BestResultFROM [Users] uINNER JOIN Table1 tbl1 ON tbl1.UserId = u.UserIdWHERE (@Gender IS NULL OR u.Gender = @Gender)GROUP BY u.UserIDORDER BY BestResultOFFSET @PageIndex * @RecordCount RO...

c# – 性能问题执行存储过程列表【代码】

我在启动Windows服务时遇到了一些性能问题,第一轮我的lstSps很长(大约130个存储过程).反正是为了加快速度(除了加快存储过程的速度)? 当foreach结束并转到第二轮时,它会更快,因为在TimeToRun()上没有那么多返回true.但是,我关心的是第一次,当有更多的存储过程要运行时. 我有关于制作一个数组和一个for循环,因为我读得更快,但我相信问题是因为程序需要很长时间.我可以用更好的方式构建它吗?也许使用多个线程(每个执行一个)或类似的...

c# – 无法使用Entity Framework 6获取存储过程结果【代码】

我有一个存储过程,它返回0或1,具体取决于我的数据库中是否存在指定的电子邮件地址:CREATE PROCEDURE [DatabaseSchema].[EmailAddressIsDuplicate] (@emailAddress nvarchar(255)) AS BEGINSET NOCOUNT ON;IF EXISTS(SELECT *FROM [DatabaseSchema].[EmailUpdatesRegistrant]WHERE EmailAddress = @emailAddress)RETURN 1ELSERETURN 0RETURN 0 ENDGO我试图从Entity Framework 6数据库上下文中获取此存储过程的结果:using (Databas...

如何在C#(ASP.Net)中调用参数化存储过程?【代码】

我正在开发一个Web应用程序,我希望用户在文本框中输入一个字符串并单击搜索按钮;它将在整个数据库中搜索用户输入的字符串(即它将在??网格视图中显示数据库名称,模式名称,表名称,列名称和记录名称). 我已经在SQL中编写了存储过程并成功执行了存储过程搜索数据库中输入的字符串并将数据插入名为tempdb.dbo.result的表中. 这是我在数据库中搜索字符串的存储过程:Use tempdb GOCreate Table Result ([Sno] int identity(1,1),[Databas...

c# – 在没有用户包装器proc的情况下从客户端应用程序执行系统存储过程(sys.sp_helptext)【代码】

我想创建一个C#方法,它接受一个参数,即存储过程的名称.然后,该方法将直接执行以下系统存储过程,而无需使用用户定义的子例程来包装此调用.sys.sp_helptext 'proc name'我收到错误:Could not find stored procedure ‘sys.sp_help_text这是权限问题(我是我的测试数据库的管理员)还是资格问题?public static string GetStoredProcedure(string objectName, string connectionString) {using (SqlConnection sqlConnection = new Sql...