Tag: 存储过程

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

我是C#的新手,我正在尝试调用我的数据库中的存储过程,该存储过程需要一个参数。 我得到错误“过程或函数’SP_getName’期望参数’@username’,这是未提供的。” 当我提供参数时,我的存储过程正常工作,我通过SQL管理工作室运行它。 GO DECLARE @return_value int EXEC @return_value = [dbo].[SP_getName] @username = ‘bob101’ SELECT ‘Return Value’ = @return_value GO 但是,当我尝试调用它时,错误是我如何传递参数,但我无法发现问题所在。 //create a sql command object to hold the results of the query SqlCommand cmd = new SqlCommand(); //and a reader to process the results SqlDataReader reader; //Instantiate return string string returnValue = null; //execute […]

有没有办法确定存储过程中的参数是否在代码中具有默认值(因此不是必需的) – .Net?

我已经从这样发送的存储过程中拉出参数: foreach (SqlParameter param in cmd.Parameters) { if ((param.Direction == ParameterDirection.Input) || (param.Direction == ParameterDirection.InputOutput)) { jsonReturn += “{\”paramName\”:\”” + param.ParameterName + “\”, \”paramType\”:\”” + param.SqlDbType.ToString() + “\”},”; } } 我查看了SqlParameter对象,无法找到一种方法来查看它是否可以告诉我参数是否具有默认值…(虽然我的调试器表现得很奇怪,所以谁知道)。 我正在做的是为用户构建一种Stored Proc帮助器。我现在告诉他们所有属于他们选择的存储过程的参数……我真的很想知道它们是否是必需的。

将DataTable作为参数传递给存储过程

我有一个用C#创建的数据表。 DataTable dt = new DataTable(); dt.Columns.Add(“Name”, typeof(string)); dt.Columns.Add(“Age”, typeof(int)); dt.Rows.Add(“James”, 23); dt.Rows.Add(“Smith”, 40); dt.Rows.Add(“Paul”, 20); 我想将此传递给以下存储过程。 CREATE PROCEDURE SomeName(@data DATATABLE) AS BEGIN INSERT INTO SOMETABLE(Column2,Column3) VALUES(……); END 我的问题是:我们如何将这3个元组插入SQL表? 我们需要使用点运算符访问列值吗? 或者还有其他方法吗?

Oracle存储过程,SYS_REFCURSOR和NHibernate

我有一个遗留的Oracle(10.2g)数据库,我正在连接,我想使用NHibernate(2.0.1)从存储过程中返回对象。 有问题的存储过程使用SYS_REFCURSOR返回结果。 根据文档,这应该是可行的,但我在互联网上发现了一些建议,否则。 这是我的释义代码: 映射文件: EXEC RS_DB.GETPERSONTEST 存储过程: CREATE OR REPLACE PROCEDURE RS_DB.GETPERSONTEST ( io_cursor IN OUT sys_refcursor ) IS BEGIN OPEN io_cursor FOR SELECT PERSONCODE, PERSON_NAME, PERSON_SURNAME FROM PEOPLE END GETPERSONTEST;

mysql存储过程,查询是否存在

我正在寻找一个可能的MySqL查询,它将检查数据库服务器上是否存在存储过程,如果它确实很好返回,如果它没有那么我可以使用c#插入它。 任何帮助表示赞赏 瓦杰

如何在Sql commandText中传递int参数

如何传递像SQL命令参数这样的整数值? 我这样想: cmd.CommandText = (“insert_questions ‘” + cmd.Parameters.AddWithValue(store_result,store_result) + “‘,'” + cmd.Parameters.AddWithValue(store_title, store_title) + “‘, ‘” + cmd.Parameters.AddWithValue(store_des, store_des) + “‘”); store_result是int,其他2个参数是字符串类型。 store_result正在给出如下错误消息。 参数1:无法从’int’转换为’string’ 在SP中,有另一个int类型变量,它将获得store_result的值。 传递int参数的正确语法是什么? 谢谢。

创建存储过程以添加自动增量作为其主要字段?

我试图通过C#将数据插入我的Sql-Server数据库。 我正在调用存储过程,然后希望它添加。 我不确定要做什么更改,但最终我希望它在存储过程中完成。 我的存储过程现在: CREATE PROCEDURE [dbo].[InsertTagProcdure] @TagID int, @Value nvarchar(200), @TagCount nvarchar(200) AS IF NOT EXISTS (SELECT NULL FROM Tag WHERE @TagID = @TagID) BEGIN INSERT INTO Tag (TagID,Value,TagCount) VALUES (@TagID,@Value,@TagCount) END 而我的C#代码: int TagID = int.Parse(txtTagID.Text); //This should fall away so auto increment. String Value = txtValue.Text; int TagCount = int.Parse(txtCount.Text); using (var […]

如何从CrystalReport调用StoredProcedure?

我想从水晶报告中调用存储过程并将检索到的值分配给报告中的字段? 有什么建议?

存储过程中的多值日期参数?

我正在尝试使用一个存储过程来接受日期的多值参数。 这不是在SSRS中,但我试图使用与它相同的方法: ALTER PROCEDURE spSelectPlacementData ( @ClientID SMALLINT, @SourceFileDates VARCHAR(MAX) ) AS BEGIN SELECT (snip) FROM [APS].[dbo].[Account] A WHERE ClientID = @ClientID AND A.[SourceFileDate] IN (SELECT * FROM dbo.Split(@SourceFileDates)) END 我在SSRS报告多值参数上使用此方法和INT和VARCHAR字段。 这是我用来连接SourceFileDates的代码: string sourceFileDates = “”; foreach (DateTime file in job.sourceFiles) { if (file == job.sourceFiles.Last()) { sourceFileDates += “‘” + file.ToString(“d”) + “‘”; } […]

如何让Linq to SQL识别动态存储过程的结果集?

我正在使用Linq-to-SQL和SQL Server后端(当然)作为项目的ORM。 我需要从一个从动态创建的表返回的存储过程中获取结果集。 这是proc的样子: CREATE procedure [RetailAdmin].[TitleSearch] ( @isbn varchar(50), @author varchar(50), @title varchar(50)) as declare @L_isbn varchar(50) declare @l_author varchar(50) declare @l_title varchar(50) declare @sql nvarchar(4000) set @L_isbn = rtrim(ltrim(@isbn)) set @l_author = rtrim(ltrim(@author)) set @l_title = rtrim(ltrim(@title)) CREATE TABLE #mytemp( [storeid] int not NULL, [Author] [varchar](100) NULL, [Title] [varchar](400) NULL, [ISBN] [varchar](50) NULL, […]