2014-05-07 76 views
0

這是我的存儲過程:調用MySQL的存儲過程

SET @sql = NULL; 
SELECT 
    GROUP_CONCAT(DISTINCT 
    CONCAT(
     'MAX(IF(goals = ''', 
     goals, 
     ''', round(value, 2), NULL)) AS ', 
     goals 
    ) 
) INTO @sql 
FROM sgwebdb.dim_module; 
SET @sql = CONCAT('SELECT alternative, ', @sql, ' FROM sgwebdb.dim_module GROUP BY 
alternative'); 

prepare stmt from @sql; 
execute stmt; 

我需要調用下面的代碼,而不是下面的MySQL查詢(QUERY1)

C#代碼這個程序 - >

protected void Page_Load(object sender, EventArgs e) 
    { 
     BindGrid(); 
    } 

    private void BindGrid() 
    { 
     string query1 = "SELECT alternative as 'Alternative',max(case when goals='G1' then round(value, 2) end) as 'Goal 1',max(case when goals='G2' then round(value, 2) end) as 'Goal 2',max(case when goals='G3' then round(value, 2) end) as 'Goal 3',max(case when goals='G4' then round(value, 2) end) as 'Goal 4' from sgwebdb.dim_module group by alternative"; 

     this.GridView1.DataSource = DataManager.DatabaseManager.GetOrCreateConnection(DataManager.DatabaseManager.ConnectionType.MySQL).GetData(query1); 
     GridView1.DataBind(); 
     for (int n = 0; n < (GridView1.Rows.Count - 1); n++) 
     { 
          Textval.Text = GridView1.Rows[n].Cells[1].Text; 
          double gdval = Convert.ToDouble(Textval.Text); 
     } 


     } 

在c#代碼中查詢1的位置如何調用以上MySQL過程?

+0

@PreetSangha我怎樣才能調用MySQL過程就地MySQL查詢 – vim

+0

可能重複[this](http://stackoverflow.com/questions/1260952/how-to-execute-a-stored-procedure-within-c -sharp-program) – jomsk1e

+0

@ jomsk1e這個副本也沒有解釋如何調用過程的body.its只調用過程的名字。 – vim

回答

1

當您創建MySqlCommand對象,你需要在CommandText屬性設置存儲過程的名稱和CommandType屬性設置爲CommandType.StoredProcedure

下面是一個代碼示例建立MySqlCommand對象來做到這一點:

MySqlCommand command = new MySqlCommand(); 
command.Connection = connection; 
command.CommandText = "NameOfYourStoredProcedure"; 
command.CommandType = CommandType.StoredProcedure; 

一個小的告誡與添加的參數是在存儲過程中參數的名稱必須與添加到Parameters集合的MySqlCommand對象。

+0

未知的準備好的語句處理程序(stmt),但在這裏你沒有指定過程的body.you指定只有程序的名字。 – vim

+0

是的,這就是你如何從C#調用存儲過程。有關文檔示例,請參閱此處:http://msdn.microsoft.com/en-us/library/d7125bke.aspx –