草庐IT

全过程

全部标签

c# - 使用 SqlCommand 执行存储过程时如何防止超时错误?

我有一个运行存储过程的C#程序。如果我从Microsoftsqlservermanagementstudio运行存储过程,它工作正常。执行大约需要30秒。但是,如果我尝试从C#程序运行相同的存储过程,它会超时,即使我已将连接字符串中的超时设置为10分钟。using(connection1=newSqlConnection("userid=user_id_goes_here;password=password_goes_here;initialcatalog=database_name_goes_here;datasource=server_name_goes_here;connecti

c# - 如何从 SQL Server 中的存储过程中检索参数列表

使用C#和System.Data.SqlClient,有没有办法在我实际执行之前检索属于SQLServer上存储过程的参数列表?我有一个“多环境”场景,其中存在同一数据库模式的多个版本。环境示例可能是“开发”、“登台”和“生产”。“开发”将有一个版本的存储过程,“登台”将有另一个版本。我想要做的就是在传递一个值并调用存储过程之前验证参数是否存在。避免SqlException而不是必须捕获它对我来说是一个加号。约书亚 最佳答案 你想要SqlCommandBuilder.DeriveParameters(SqlCommand)方法。请注

c# - 在 Dapper 中执行带参数的存储过程

我正在使用Dapper(感谢Sam,很棒的项目。)带有DAL的微型ORM,由于某种原因我无法使用输入参数执行存储过程。在示例服务中,我有以下代码:publicvoidGetSomething(intsomethingId){IRepositoryrepository=UnitOfWork.GetRepository();varparam=newDynamicParameters();param.Add("@somethingId",dbType:DbType.Int32,value:somethingId,direction:ParameterDirection.Input);varr

c# - 为什么接口(interface)定义中需要参数名称?我可以在实现过程中选择新的参数名称

不确定这是否是一个愚蠢的问题,但我刚刚注意到这一点:publicinterfaceIActivityDao:IDao{IListGetAllSinceSequence(longsequence,intcount);}publicclassActivityDao:AbstractNHibernateDao,IActivityDao{publicIListGetAllSinceSequence(longsequence,intmaxRecords){}}在我的实现中,我将第二个参数称为“maxRecords”。然而,在界面中,它被定义为“计数”。编译器仍然考虑实现的接口(interface

c# - 存储过程或函数需要未提供的参数

我试图通过调用存储过程将数据插入到SQLServer数据库中,但出现错误*Procedureorfunction'Insertion'expectsparameter'@Emp_no',whichwasnotsupplied*我的存储过程称为插入。我已经彻底检查过了,没有遗漏任何参数,我也用标签检查过。标签显示了值,但我不知道为什么会出现错误。我的代码是try{SqlCommandcmd=newSqlCommand();cmd.Parameters.Clear();cmd.CommandType=CommandType.StoredProcedure;cmd.CommandText="

c# - 我如何在 SQL 中使用枚举而不在我的 SQL 脚本/过程中硬编码魔数(Magic Number)?

我们的C#代码中有枚举:publicenumJobStatus{Ready=0,Running=1,Cancelling=2,}这些值也存储在数据库字段中,我们有很多TSQL(主要是存储过程,以及一些批处理和SSIS)也处理数据:SELECTTOP1@JobSID=JobSIDFROMJobWHEREStatus=0/*JobStatus.Ready*/ORDERBYSubmitDateASCCREATETABLEImportCrossEffect(/*lotsdeleted*/SourcetinyintDEFAULT1NOTNULL--0:Unknown(default),1:Imp

c# - 如何告诉 Entity Framework Function Import 存储过程返回的列不可为空?

我有一个类似于此的SQLServer存储过程:CREATEPROCEDURE[jp].[GetFoo]@GuidUNIQUEIDENTIFIERASSELECTCONVERT(BIT,(CASEWHEN[dbo].[GetBar](T.Col2)=3THEN1ELSE0END))IsGetBarCol2EqualToThreeFROM[dbo].[MyTable]TWHERET.Col1=@Guid当我在EF中执行函数导入/获取列信息时,列IsGetBarCol2EqualToThree的推断类型为Nullable.但是这个字段不可能为空,所以我希望它只是bool.有没有一种方法可以在

c# - 为存储过程创建可重用的 Linq To SQL

我正在处理一个需要使用LinqToSQL的新项目。我被要求创建一个可用于执行存储过程的通用或可重用的LinqtoSQL类。在ADO.Net中,我知道如何通过传递一个我想执行的字符串来做到这一点,我可以为每个需要运行的查询传递不同的字符串:SqlCommandcmd=newSqlCommand("myStoredProc",conn);//etc,etc我正在为如何在LinqToSQL中创建类似的东西而苦苦挣扎,如果可能的话。我创建了一个.dbml文件并向其中添加了我的存储过程。因此,我可以使用以下代码返回结果:publicListGetData(stringconnectName){M

c# - 将 Dapper 与返回游标的 Oracle 存储过程一起使用

如何使用Dapper使用返回游标的Oracle存储过程?varp=newDynamicParameters();p.Add("foo","bar");p.Add("baz_cursor",dbType:DbType.?,direction:ParameterDirection.Output);在这里,DbType是没有Cursor成员的System.Data.DbType。我试过使用DbType.Object,但这不适用于OracleClient和OracleDataAcess。改用OracleType或OracleDbType的可能方法是什么? 最佳答案

c# - 带有存储过程的代码优先 Entity Framework 从复杂的全文搜索返回结果

我正在为以下场景寻找设计建议:我有一个代码优先的EF5MVC应用程序。我正在构建一个全文搜索功能,它将合并来自许多表的多个加权列。由于我无法使用这些表(其中一些包含文本/二进制列)的索引创建View,因此我创建了一个存储过程,它将输出我的对象的ID(例如PersonID)和根据搜索词对与该对象关联的排名。我目前的方法是创建一个辅助类来执行全文搜索,它调用存储过程并根据返回的ID从上下文中加载所有对象。我的问题是:我的方法是否合理/遵循合理的最佳实践?有没有其他人做过类似的事情并吸取了教训?有没有一种方法可以更有效地做到这一点(即让存储过程的结果直接返回/映射到实体而不需要额外的查找?)