0

セッションチュートリアルに従っています。問題はこの部分です。

  OleDbCommand fecth =  new OleDbCommand(
     "SELECT * FROM YONETICI  Where  YNAME'" + 
      txtad.Text + "' and YPASS'" + txtpass.Text + "' ", 
     con);

この部分で、不正な構文という名前の例外が発生しています - 演算子がありません(翻訳しようとしました)

これは残りのコードです

 OleDbConnection con = new OleDbConnection(
         "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+
         Server.MapPath("App_Data\\db.accdb"));
    con.Open();



    OleDbCommand fecth =  new OleDbCommand(
           "SELECT * FROM YONETICI  Where  YNAME'" + 
            txtad.Text + "' and YPASS'" + txtpass.Text + "' ", 
            con);
   OleDbDataReader dr=fecth.ExecuteReader();
    if(dr.Read()){
    Session.Add("value",txtad.Text);
    Response.Redirect("Default.aspx");
4

2 に答える 2

2

等号演算子が必要です。

OleDbCommand fecth =  new OleDbCommand(
                          "SELECT * FROM YONETICI  Where YNAME = '" + 
                            txtad.Text + 
                            "' and YPASS = '" + 
                            txtpass.Text + "' ", 
                          con);

それを試してみてください。クエリに 2 つの等号演算子を追加しました。

于 2013-08-30T18:46:57.243 に答える
2

正確には、等号を 2 つ追加する必要がありますが、より良い方法でクエリを記述することをお勧めします。これにより、@Parameter が以下のコードのような値に置き換えられます。

fetch.Parameters.addWithValue()


OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+Server.MapPath("App_Data\\db.accdb"));
con.Open();

OleDbCommand fecth =  new OleDbCommand("SELECT * FROM YONETICI  Where  YNAME='@txtad' and YPASS='@txtpass'", con);

fecth.Parameters.AddWithValue("@txtad",txtad.Text);
fecth.Parameters.AddWithValue("@txtpass",txtpass.Text);
OleDbDataReader dr=fecth.ExecuteReader();
if(dr.Read()){
Session.Add("value",txtad.Text);
Response.Redirect("Default.aspx");
于 2013-08-30T18:52:35.137 に答える