Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C语言中读取光标输出并保存到数据集中_C#_Sql_Sql Server_Visual Studio_Sql Server 2008 - Fatal编程技术网

C# 在C语言中读取光标输出并保存到数据集中

C# 在C语言中读取光标输出并保存到数据集中,c#,sql,sql-server,visual-studio,sql-server-2008,C#,Sql,Sql Server,Visual Studio,Sql Server 2008,我很难弄明白这一点。我使用的是SQL server存储过程,它打开一个游标进行动态查询,并输出结果。例如: CREATE PROCEDURE @results CURSOR VARYING OUTPUT @id INT AS DECLARE @query AS VARCHAR(max) SET @query = ' SELECT * from EMPtable where'+@id+'= emp.id' SET @results = CURSOR FOR SELECT @query OPEN @

我很难弄明白这一点。我使用的是SQL server存储过程,它打开一个游标进行动态查询,并输出结果。例如:

CREATE PROCEDURE
@results CURSOR VARYING OUTPUT
@id INT
AS
DECLARE @query AS VARCHAR(max)
SET @query = ' SELECT * from EMPtable where'+@id+'= emp.id'
SET @results = CURSOR FOR SELECT @query
OPEN @results
然后关闭并取消分配光标。
我不知道如何读取数据集值并将其存储在C中的数据表中。我尝试使用数据适配器和数据读取器,但所有操作都返回空值或错误。

欢迎使用堆栈溢出

通过使用以下命令,可以使存储过程更简单、更易于阅读。请注意,现在它不再那么令人困惑了:

创建过程dbo.spSelectEmployee @id int 作为开始 挑选* 从可清空 其中id=@id 终止 然后,您可以像这样将其读入c中的数据表,并对其执行一些操作:

无效GetEmployeeint employeeID { // 1 //开放连接 使用SqlConnection SqlConnection=new SqlConnectionProperties.Settings.Default.DataConnectionString { sqlConnection.Open; // 2 //创建新的数据适配器 使用SqlDataAdapter SqlDataAdapter=new SqlDataAdapterEXEC dbo.spSelectEmployee+employeeID,sqlConnection { // 3 //使用DataAdapter填充DataTable DataTable=新的DataTable; sqlDataAdapter.FilldataTable; // 4 //将数据渲染到屏幕上
//dataGridView1.DataSource=dataTable;//这不是您想要用来做您想要做的事情的过程。您的整个过程应该是创建过程EMP_GetByID@id INT AS BEGIN SELECT*FROM EMPtable,其中id=@idEND@JamieD77这应该是一个答案。当我看到这个过程是使用光标选择s时,我差点哭了statement@SeanLange没有什么意义。由于emp.id的原因,如果它没有将sql放入varchar中,它甚至不会编译