我有程序,在MySQL Workbench中运行良好:
CREATE DEFINER=`root`@`localhost` PROCEDURE `dane dla stacji`(IN naz varchar(100))
BEGIN
SELECT stacje.nazwa, parametry.nazwa, wyniki_pomiarow.wartosc, wyniki_pomiarow.data
FROM srodowisko.stacje, srodowisko.parametry, srodowisko.wyniki_pomiarow
WHERE stacje.nazwa=naz AND stacje.idStacji = wyniki_pomiarow.idStacji AND parametry.idParametru = wyniki_pomiarow.idParametru;
END
现在我想在c#中调用它并在dataGrid中显示。我写了类似的东西:
public void display(string zapytanie_sql)
{
mcon = new MySqlConnection("datasource=localhost;port=3306;username=root;password=***");
mcon.Open();;
mda = new MySqlDataAdapter(zapytanie_sql, mcon);
ds = new DataSet();
mda.Fill(ds, "stacje");
}
public void doCommand(string komenda_sql)
{
mcon = new MySqlConnection("datasource=localhost;port=3306;username=root;password=***");
mcon.Open();;
MySqlCommand command = new MySqlCommand(komenda_sql, mcon);
MySqlDataReader reader;
reader = command.ExecuteReader();
//while (reader.Read()) { }
mcon.Close();
}
当我使用简单的查询时,它可以工作,但是使用过程却没有。
zapytanie_sql = "call srodowisko.`dane dla stacji`('Olkusz');";
baza.display(zapytanie_sql);