2016-04-07 5 views
0

Ich habe eine Abfrage wie folgt aus:Anfahrt Datenmenge von MySQL Query-Variablen

SET @a = (SELECT GROUP_CONCAT(Id) FROM MyTable1 WHERE Id < 10); 
SELECT * FROM MyTable2 WHERE find_in_set(IdLite, @a); 
SELECT * FROM MyTable3 WHERE find_in_set(IdLite, @a); 
SELECT * FROM MyTable4 WHERE find_in_set(IdLite, @a); 

Ich habe tryed diesen Code verwenden resut zu erhalten:

Using ds As DataSet = MySqlHelper.ExecuteDataset(CnStr, SqlStr) 

aber ich bekomme Fehler:

Fatal error encountered during command execution.

Fehlermeldung ist:

Parameter '@a' must be defined.

Ich habe auch tryed:

SELECT * FROM MyTable2 WHERE find_in_set(IdLite, 
    @a := (SELECT GROUP_CONCAT(Id) FROM MyTable1 WHERE Id < 10)); 
SELECT * FROM MyTable3 WHERE find_in_set(IdLite, @a); 
SELECT * FROM MyTable4 WHERE find_in_set(IdLite, @a); 

aber ich habe den gleichen Fehler.
Was ist der richtige Weg, um Ergebnisse in eine DataSet zu bekommen?

Antwort

0

Der Fehler ist in der Verbindungszeichenfolge.

Die Lösung ist ;Allow User Variables=True zum Datenbanknamen hinzuzufügen.

Auf diese Weise:

CnStr = "datasource=" + Server_Name + _ 
";username= " + UserDB + _ 
";password=" + Password + _ 
";database=" + Database_Name + ";Allow User Variables=True" 
0
DataSet mydataset = new DataSet(); 
MySqlConnection myConnection = new MySqlConnection(); 
myConnection.ConnectionString = "************"; 
myConnection.Open(); 
string mySelectQuery = "SELECT * FROM table"; 
MySqlCommand myCommand = new MySqlCommand(mySelectQuery,myConnection); 
MySqlDataAdapter adapter = new MySqlDataAdapter(myCommand); 
adapter.Fill(mydataset, "table"); 
dataGridView1.DataSource = mydataset; 
dataGridView1.DataMember = "table"; 
myConnection.Close(); 

Sie können einen Blick in den folgenden Links haben:

http://forums.codeguru.com/showthread.php?448008-How-do-i-load-mysql-data-into-a-dataset-then-into-a-datagrid

http://www.dotnetheaven.com/article/how-to-load-data-from-database-into-datagridview-in-vb.net

Wenn meine Antwort richtig ist dann bitte die richtige masrk. Danke

+0

ich Ihren Code vb.net angepasst haben (es scheint, C-Code zu sein), aber es scheint nicht Variablen in die SQL-Zeichenfolge zu akzeptieren. Bitte versuchen Sie eine SQL-Zeichenfolge wie die in meiner Frage. – genespos