C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

c#パラメータクエリ

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■89139 / inTopicNo.1)  c#パラメータクエリ
  
□投稿者/ tetris (14回)-(2018/11/01(Thu) 17:21:18)

分類:[C#] 

dateTimePicker1で選択された日付のデータを抽出したいだけの文を書きたいのですが
文として間違っているところはありますでしょうか?
少し前に同じような質問をして理解した気でいたんですが、エラーが出てしまい、試行錯誤してもダメでした・・。
Oledbを使っています。データベースはaccdbです。

command.CommandText = "Select * From データ一覧_T WHERE 日付 =?";
String hiduke = dateTimePicker1.Value.ToString("yyyy" + "年" + "MMMM" + "d" + "日");
command.Parameters.AddWithValue("@hiduke",hiduke);
引用返信 編集キー/
■89140 / inTopicNo.2)  Re[1]: c#パラメータクエリ
□投稿者/ WebSurfer (1643回)-(2018/11/01(Thu) 17:55:47)
No89139 (tetris さん) に返信

No89085 の質問の続きですよね? であれば、そのことを質問に書くようにしてください。
ここに書かれた質問しか見てない人もいるはずですから・・・

コードのどの行でエラーが出ていて、エラーメッセージはどういうものか略さず書いてく
ださい。エラーメッセージには非常に重要な情報が含まれていることを認識してください。
場合によってはエラーメッセージだけで原因と解決策が分かることもあるのです。
引用返信 編集キー/
■89141 / inTopicNo.3)  Re[1]: c#パラメータクエリ
□投稿者/ 魔界の仮面弁士 (1920回)-(2018/11/01(Thu) 18:37:11)
No89139 (tetris さん) に返信
> 文として間違っているところはありますでしょうか?
誤) "Select * From データ一覧_T WHERE 日付 =?"
正) "Select * From データ一覧_T WHERE 日付 =?"


それと
 .ToString("yyyy" + "年" + "MMMM" + "d" + "日")
も無駄ですよね。文字列連結する意味も無さそうなので、
 .ToString("yyyy年MMMMd日")
で十分であったようにも思えますが。


> 少し前に同じような質問をして理解した気でいたんですが、エラーが出てしまい、試行錯誤してもダメでした・・。
データベース側の [日付]列の型はなんですか?

日付型なら、
 command.Parameters.AddWithValue("@hiduke", dateTimePicker1.Value.Date);
でしょうし、日時型なら、
 command.Parameters.AddWithValue("@hiduke", dateTimePicker1.Value);
でしょうし、文字列型での "2018/11/01" 形式なら、
 command.Parameters.AddWithValue("@hiduke", dateTimePicker1.Value.ToString("yyyy\\/MM\\/dd"));
などになるのでは。
引用返信 編集キー/
■89147 / inTopicNo.4)  Re[2]: c#パラメータクエリ
□投稿者/ tetris (15回)-(2018/11/02(Fri) 09:04:00)

> No89085 の質問の続きですよね? であれば、そのことを質問に書くようにしてください。
> ここに書かれた質問しか見てない人もいるはずですから・・・
>
> コードのどの行でエラーが出ていて、エラーメッセージはどういうものか略さず書いてく
> ださい。エラーメッセージには非常に重要な情報が含まれていることを認識してください。
> 場合によってはエラーメッセージだけで原因と解決策が分かることもあるのです。

またまた情報足らずで申し訳ありませんでした。
助言、ありがとうございます。
引用返信 編集キー/
■89148 / inTopicNo.5)  Re[2]: c#パラメータクエリ
□投稿者/ tetris (16回)-(2018/11/02(Fri) 09:06:08)
2018/11/02(Fri) 09:08:16 編集(投稿者)

> 誤) "Select * From データ一覧_T WHERE 日付 =?"
> 正) "Select * From データ一覧_T WHERE 日付 =?"
ご指摘ありがとうございます。本当に初歩的なところでしたね。
アスタリスクが全角になってたみたいで半角に直したところ、正常に動作しました。

> それと
>  .ToString("yyyy" + "年" + "MMMM" + "d" + "日")
> も無駄ですよね。文字列連結する意味も無さそうなので、
>  .ToString("yyyy年MMMMd日")
> で十分であったようにも思えますが。
これは初めて知りました!ありがとうございます!

解決済み
引用返信 編集キー/
■89150 / inTopicNo.6)  Re[3]: c#パラメータクエリ
□投稿者/ WebSurfer (1644回)-(2018/11/02(Fri) 10:20:50)
No89148 (tetris さん) に返信

>> .ToString("yyyy年MMMMd日")
>>で十分であったようにも思えますが。
> これは初めて知りました!ありがとうございます!

それは、上の No89141 で魔界の仮面弁士さんが言われる、

> 文字列型での "2018/11/01" 形式なら、
> command.Parameters.AddWithValue("@hiduke", dateTimePicker1.Value.ToString("yyyy\\/MM\\/dd"));

の場合ですよね。

でも、前のスレッドの質問者さんのレス No89096 で、


>> 変更できるのであれば余計な変換をしなくて済むように日付型に変えた方がよさそうな気がし
>> ます。

> 変更してみました!ありがとうございます。

とのことだったのですが、元のテキスト型に戻したのですか?
引用返信 編集キー/
■89153 / inTopicNo.7)  Re[4]: c#パラメータクエリ
□投稿者/ tetris (17回)-(2018/11/02(Fri) 11:44:53)

> とのことだったのですが、元のテキスト型に戻したのですか?

ご指摘ありがとうございます!いろいろ試行錯誤しているうちに元のテキスト型に直しました!
書くべきでしたよね、申し訳ありません;。;
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ