- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2005-10-26 16:23
引用: |
|
さくらさんの書き込み (2005-10-26 16:03) より:
コード: |
|
Dim p_dtBegDay As SQlParameter = (cmd.Parameters.Add("@dtBegDay",SqlDbType.DateTime)
p_dtBegDay.Value = DateTime.Parse("2005/10/01"))
|
でダメですか?
|
私の読み違えかもしれませんが、Add するのはあくまでパラメータじゃないんでしょうか?
コード: |
|
Dim hParameter As New System.Data.SqlClient.SqlParameter("dtBegday", System.Data.SqlDbType.DateTime)
hParameter.Value = DateTime.Parse("2005/04/07")
hCommand.Parameters.Add(hParameter)
|
ついでですが、
引用: |
|
らいさんの書き込み (2005-10-26 15:32) より:
もしかしたら、DateTimeEx.Parseでいけるかも。
|
それは、GrapeCity 製の製品にある InputMan に実装されたメソッドだと思います。
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|
- らい
- 大ベテラン
- 会議室デビュー日: 2005/08/02
- 投稿数: 159
- お住まい・勤務地: 東京都と千葉県のさかいめ
|
投稿日時: 2005-10-26 16:34
らいです。
引用: |
|
じゃんぬねっとさんの書き込み (2005-10-26 15:53) より:
引用: |
|
らいさんの書き込み (2005-10-26 15:32) より:
よく考えたら、Date型でしたね、CDateって。
# DateTime型にしないと意味ないじゃん。orz
|
実態は一緒ですよ。(^-^*)
|
引用: |
|
じゃんぬねっとさんの書き込み (2005-10-26 16:23) より:
引用: |
|
らいさんの書き込み (2005-10-26 15:32) より:
もしかしたら、DateTimeEx.Parseでいけるかも。
|
それは、GrapeCity 製の製品にある InputMan に実装されたメソッドだと思います。
|
うを。
二重の恥ぢゃん。
# というか、最近こんなんばっか。orz
指摘、ありがとうです。>じゃんぬさん
_________________ 一寸先は闇
安定してるシステムって言ったじゃん(泣)
|
- CAN
- 会議室デビュー日: 2003/07/11
- 投稿数: 4
|
投稿日時: 2005-10-26 17:22
以前 作ったのを見てみましたが、文字列で渡してました。
' 1分前の日時を設定
Dim pBeforeDate As New SqlParameter("@BeforeDate", SqlDbType.DateTime)
pBeforeDate.Value = DateTime.Now.AddMinutes(-1).ToString("yyyy/MM/dd HH:mm:ss")
myCommand.Parameters.Add(pBeforeDate)
|
- 桜緋女
- 常連さん
- 会議室デビュー日: 2004/09/15
- 投稿数: 46
|
投稿日時: 2005-10-26 17:27
お世話になります、さくらです。
引用: |
|
じゃんぬねっとさんの書き込み (2005-10-26 16:23) より:
引用: |
|
さくらさんの書き込み (2005-10-26 16:03) より:
コード: |
|
Dim p_dtBegDay As SQlParameter = (cmd.Parameters.Add("@dtBegDay",SqlDbType.DateTime)
p_dtBegDay.Value = DateTime.Parse("2005/10/01"))
|
でダメですか?
|
私の読み違えかもしれませんが、Add するのはあくまでパラメータじゃないんでしょうか?
コード: |
|
Dim hParameter As New System.Data.SqlClient.SqlParameter("dtBegday", System.Data.SqlDbType.DateTime)
hParameter.Value = DateTime.Parse("2005/04/07")
hCommand.Parameters.Add(hParameter)
|
|
一部括弧の消し忘れがあって、おかしくなっていたようです。
失礼しました。
ただ、Addの引数自体は問題ないと思います。
コード: |
|
Dim p_dtBegDay As SQlParameter = cmd.Parameters.Add("@dtBegDay",SqlDbType.DateTime)
p_dtBegDay.Value = DateTime.Parse("2005/10/01")
|
パラメータ名と型を渡すのでも、パラメータの追加は可能です。
そうすると、追加されたSqlClient.SqlParameterを戻してきますから、
そこに後付けで値を設定してやることが出来ます。
ListViewのアイテム追加と似た感じかと。
もちろん、インスタンスを作ったSqlParamaterを直接追加することも出来ます。
じゃんぬさんの書き方のほうが、すっきりしてますね。
元のソースがどこで型変換エラーしているかを示すのには、
上記の修正の方が元の形を残しているかと。
(なんていいつつ、手抜き修正なだけかも・・・。)
|
- Jitta
- ぬし
- 会議室デビュー日: 2002/07/05
- 投稿数: 6267
- お住まい・勤務地: 兵庫県・海手
|
投稿日時: 2005-10-26 20:04
引用: |
| コード: |
|
Dim p_dtBegDay As SQlParameter
= cmd.Parameters.Add("@dtBegDay",SqlDbType.DateTime).Value
= DateValue("2005/10/01")
|
|
変だね。1つの式に代入演算子が2つあるもんね。
または、後の = は比較演算子扱いかな?
Language C では、代入した値がそのまま式の値として出力されるけど、VB.NET って、どうなのかなぁ?
↑ってことですよね?>さくらさん、じゃんぬねっとさん
コード: |
|
cmd.Parameters.Add("@dtBegDay",SqlDbType.DateTime).Value
= DateValue("2005/10/01")
OR
Dim p_dtBegDay As SQlParameter
= cmd.Parameters.Add("@dtBegDay",SqlDbType.DateTime)
p_dtBegDay.Value = DateValue("2005/10/01")
|
# ポインタじゃないんだよなぁ。。。
# "Day" で日付なのも明らかだし。。。
_________________
|
- 桜緋女
- 常連さん
- 会議室デビュー日: 2004/09/15
- 投稿数: 46
|
投稿日時: 2005-10-26 20:45
お世話になります、藤田です。
引用: |
|
Jittaさんの書き込み (2005-10-26 20:04) より:
引用: |
| コード: |
|
Dim p_dtBegDay As SQlParameter
= cmd.Parameters.Add("@dtBegDay",SqlDbType.DateTime).Value
= DateValue("2005/10/01")
|
|
変だね。1つの式に代入演算子が2つあるもんね。
または、後の = は比較演算子扱いかな?
Language C では、代入した値がそのまま式の値として出力されるけど、VB.NET って、どうなのかなぁ?
↑ってことですよね?>さくらさん、じゃんぬねっとさん
コード: |
|
cmd.Parameters.Add("@dtBegDay",SqlDbType.DateTime).Value
= DateValue("2005/10/01")
OR
Dim p_dtBegDay As SQlParameter
= cmd.Parameters.Add("@dtBegDay",SqlDbType.DateTime)
p_dtBegDay.Value = DateValue("2005/10/01")
|
# ポインタじゃないんだよなぁ。。。
# "Day" で日付なのも明らかだし。。。
|
そういうことです。
で、VB.NETでは多分、後ろは比較演算子として解釈されたような覚えがあります。
ためしに、
コード: |
|
Option Strict On
'~~~
Dim i As Integer
Dim j As Integer = i = 1 - 1
|
とやると、やはり
「Option Strict On で"Boolean"から"Integer"への暗黙的な変換はできません」
というビルドエラーが発生します。
それと同じではないでしょうか。
|
- sathios
- 会議室デビュー日: 2005/10/26
- 投稿数: 6
|
投稿日時: 2005-10-26 21:33
たくさんの書き込みありがとうございます。
おかげ様で無事解決しました。
結果からお話しますと、さくらさんのおっしゃるとおり
下記の記述で正しく動作しました。
Dim p_dtBegDay As SQlParameter = (cmd.Parameters.Add _("@dtBegDay",SqlDbType.DateTime)
p_dtBegDay.Value = DateTime.Parse("2005/10/01"))
日付型に関わらず、下の
Dim p_nSiteCD As SQlParameter = cmd.Parameters.Add("@dtBegDay",SqlDbType.Int).Value = 11
でも同じエラーが発生したので、Date型の問題ではなかったようです。
ありがとうございました。
[ メッセージ編集済み 編集者: sathios 編集日時 2005-10-27 08:13 ]
|