2012-02-08 17 views
0

私は文字列としてタイトルを持つ製品テーブルを持っています。私の見解内部このlinqクエリには何が間違っていますか?

私は

@using (Html.BeginForm("Serach","Store")) 
     { 

      <input type="text" name="q" class="searchbox_textbox" /> 
      <input type="submit" class="searchbox_btn" /> 
      } 

を持っていると私はそれが私にこのエラー

を与えるを検索するためのページを実行して、単語を入力すると、私のコントローラ内の私は

 public ActionResult Serach(string q) 
    { 
     var result = storeDB.Products 
        .Where(p => p.Title.Contains(q) || string.IsNullOrEmpty(q)); 


     return View(result); 

    } 

を持っています

関数の指定された引数の値が無効です。 [引数番号= 1、機能の名前(既知の場合)= isnull] 説明:現在のWeb要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこで発生したのかについては、スタックトレースを参照してください。

例外の詳細:System.Data.SqlServerCe.SqlCeException:関数の指定された引数の値が無効です。 [引数#= 1、機能の名前(わかっている場合)= isnull]

何が問題なのですか? はどんな商品にも一致しませんでした

答えて

2

実際にデータベースに送信されているものを確認するために、 - これは、その問題の周りを取得します

public ActionResult Search(string q) 
{ 
    var result = string.IsNullOrEmpty(q) ? storeDB.Products 
        : storeDB.Products.Where(p => p.Title.Contains(q)); 

    return View(result); 
} 

それは、SQL CEでサポートされているSQLの方言は、あなたが使用していた空虚のチェックをサポートしていません可能です:それはそこに着く前に、クエリを分割D」。

関連する問題