2017-11-13 8 views
0

This is my code, tell me where to change because When I do search for a movie that is in a record it displays the result, but when it isn't I only get "Movie Not Found" as in the response.write.私は私ではなく、テキスト/コードとして質問を置くことをお勧めします

enter image description here SLNkq.png

+0

コードではなく、外部のホスティングサービスへの画像リンクと一緒にここにあなたの質問を入れてください – Tim

+0

外部入れいけないしてください。リンク –

答えて

1

という検索が映画のために見つからなかった場合、私のテーブルには、すべてのレコードを表示したいが行うことが方法がわかりませんよ。

あなたの場合は、datareaderの代わりにdatatableを使用することをお勧めします。トランザクションは、前方専用の場合@Shaiコーエンさんのコメントに基づいて、DataTableのアプローチ==

SqlConnection con = new SqlConnection(constring); 

SqlCommand cmd = new SqlCommand("IF EXISTS(SELECT * FROM Content WHERE [email protected]) SELECT * FROM Content WHERE [email protected] ELSE SELECT * FROM Content"); 

cmd.CommandType = CommandType.Text; 
cmd.Parameters.AddWithValue("@MovieTitle", MovieTitle.Text); 
cmd.Connection = con; 
con.Open(); 
SqlDataAdapter da = new SqlDataAdapter(cmd); 
DataTable dt = new DataTable("Result"); 
da.Fill(dt); 
con.Close(); 

MovieResults.DataSource = dt; 
MovieResults.DataBind(); 

==は、それがExecuteDataReaderを使用することによってより良いアプローチでしょう。あなたのコメントのために@ShaiCohenに感謝します。 DataTableのアプローチがなければ

== ==

SqlConnection con = new SqlConnection(constring); 

SqlCommand cmd = new SqlCommand("IF EXISTS(SELECT * FROM Content WHERE [email protected]) SELECT * FROM Content WHERE [email protected] ELSE SELECT * FROM Content"); 

cmd.CommandType = CommandType.Text; 
cmd.Parameters.AddWithValue("@MovieTitle", MovieTitle.Text); 
cmd.Connection = con; 
con.Open(); 

MovieResults.DataSource = cmd.ExecuteReader(); 
MovieResults.DataBind(); 

con.Close(); 

は(コーディングをお楽しみください。

+0

_「データレアの代わりにdatatableを使用することをお勧めします」_ なぜ、OPが役立つのか分かりません。なぜデータテーブルに伴う余分なオーバーヘッドを追加するのですか? –

+1

@ShaiCohenありがとうございます。答えを更新しました。 – Mike

関連する問題