2016-05-07 7 views
0

次のコードで何が問題になっていますか?私はデータベースからデータを取得しようとしていますが、このエラーは表示されます。親切にソリューションを提供してください。 エラー:Mysqlエラー - データ取得

SQL構文に誤りがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックし、正しい構文が1行目の 'wrap'の近くで使用するようにしてください。 説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこで発生したのかについては、スタックトレースを参照してください。

Line 19:   da.SelectCommand = cmd; 
Line 20:   DataSet ds = new DataSet(); 
Line 21:   da.Fill(ds,"Recipe_Info"); 
Line 22:   DataRow dr = ds.Tables["Recipe_Info"].Rows[0]; 
Line 23:   String r_name, r_ing, r_desc, r_ins; 

例外の詳細:MySql.Data.MySqlClient.MySqlException:あなたのSQL構文でエラーが発生しています。

new MySqlCommand("select ... from Recipes where Recipe_Name = '" + recipe_name + "'", con); 

:1

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using MySql.Data.MySqlClient; 

public partial class Detailed_Recipe_View : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     String recipe_name=Session["Recipe_Name"].ToString(); 
     MySqlConnection con = new MySqlConnection("Server=localhost;Database=FreedomKitchen;Uid=root;Password=;"); 
     con.Open(); 
     MySqlCommand cmd = new MySqlCommand("select User_ID,Recipe_Name,All_Ingredients,Recipe_Description,Recipe_Instructions from Recipes where Recipe_Name="+recipe_name, con); 
     MySqlDataAdapter da = new MySqlDataAdapter(); 
     da.SelectCommand = cmd; 
     DataSet ds = new DataSet(); 
     da.Fill(ds,"Recipe_Info"); 
     DataRow dr = ds.Tables["Recipe_Info"].Rows[0]; 
     String r_name, r_ing, r_desc, r_ins; 

     r_name = Convert.ToString(dr["Recipe_Name"]); 
     r_ing = Convert.ToString(dr["All_Ingredients"]); 
     r_desc = Convert.ToString(dr["Recipe_Description"]); 
     r_ins = Convert.ToString(dr["Recipe_Instructions"]); 

     txtRecipeName.Text = r_name; 
     txtDescription.Text = r_desc; 
     txtAllIngredients.Text = r_ing; 
     txtInstructions.Text = r_ins; 

    } 
} 
+0

しかし、21行目がエラーとして表示されます。 – user6302221

+0

問題は次のようになります:Recipe_Name = "+ recipe_name .. recipe_name変数の内容を確認してください – Marco

答えて

0

あなたはWHERE状態でrecipe_name周りの単一引用符を置くべきラインで近くに「ラップ」を使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してくださいより良い選択肢は、パラメータ化されたクエリ(Parameterized Query for MySQL with C#)を使用することです。

関連する問題