C#WinForm将组合框中选择的名称传递给存储过程

时间:2016-08-16 15:11:07

标签: c# sql-server winforms stored-procedures combobox

我有一个Homepages表,其中两个是Root / Main / Parent Websites(localDB,Dataset)。我想实现一个存储过程。它列出了网站的所有父级,并在DataGridView中显示结果[id,parentID,name]。

我得到了关注的细节

CREATE PROCEDURE GetIDbyID (@childname varchar(50)) AS

;With CTE  (ID
        ,   name
        ,   parentID
        ,   Level) AS
(SELECT e.ID
        , e.name
        , e.parentID
        , 0 AS Level

    FROM page AS e
    WHERE e.name LIKE @childname

UNION ALL

SELECT    e.ID
        , e.name
        , e.parentID
        , Level+1

    FROM page AS e
    INNER JOIN CTE AS h
    ON h.parentID = e.ID
    )
SELECT DISTINCT ID
              , name
              , parentID
FROM CTE
ORDER BY ID

执行我正在获取此查询,我可以在其中插入网站

USE [C:\...DATABASE1.MDF]
GO

DECLARE @return_value Int

EXEC    @return_value = [dbo].[GetIDbyID]
        @childname = N'**Page..**'  //How to insert the page here that is selected in the combobox???

SELECT  'Return Value' = @return_value

GO

我设法建立了与数据库的连接,并在组合框中列出整个表格。具有列的DataGridView和与SP的连接也已存在。现在我的愿望是,当我在组合框中选择一个站点时,DataGridView会立即填充SP的值。这个CTE甚至可以实现吗?

任何想法如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

我通常喜欢创建一个单独的过程来填充datagridview,然后从我想要更改数据的任何事件中调用它。这是一个可以帮助您入门的示例:

meses[elMes] += 1;

你可以从SelectedIndexChanged事件中调用它和/或创建一个按钮,它将在点击时执行它。