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

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

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

Re[35]: null [1]


(過去ログ 39 を表示中)

[トピック内 48 記事 (21 - 40 表示)]  << 0 | 1 | 2 >>

■20578 / inTopicNo.21)  Re[15]: null
  
□投稿者/ じゅで (47回)-(2008/06/12(Thu) 16:31:09)
No20576 (初心者 さん) に返信
今現在、ご自身がお書きになっているソースコードの事です。
ソース、または、コードなどとも言います。

もしわかるようであれば、原因となる場所の前後、またはメソッド(関数)を貼り付け、
どの時点でエラーが発生するか記載すると、返答がもらいやすいです。

また、こちらとしても、回答が出しやすいです。

ただ、検討も付かない場合は、今の流れならソースを全部はりつけても・・・
きっと大丈夫?


引用返信 編集キー/
■20581 / inTopicNo.22)  Re[16]: null
□投稿者/ 初心者 (66回)-(2008/06/12(Thu) 16:45:09)
Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click
        
 Dim LsProvider As String = "SQLOLEDB"
        Dim LsDataSource As String = "KP72202\SQLEXPRESS"
        Dim LsPreSecInf As String = "FALSE "
        Dim LsIniCat As String = "KYOIKU"
        Dim LsUser As String = "test"
        Dim LsPass As String = "test"
        Dim LrecAdo As New ADODB.Recordset
        Dim LsSyainNo As String
        Dim LsKinmuDate As String
        Dim LsKinmuTime As String

        'DBの接続
        McnnAdo.Open("Provider=" & LsProvider & ";Data Source=" & LsDataSource & ";Persist Security Info=" & LsPreSecInf & ";Initial Catalog=" & LsIniCat & ";", LsUser, LsPass)
       
        'SQL文の入力
        Dim LsSQL As String

        '検索処理用のSQLを作成
        LsSQL = "SELECT msyain.syain_id,tkintai.KinmuDate,tkintai.KinmuTime FROM msyain left join tKintai on msyain.syain_id=" & txtSyainNo.Text.Trim()

        '検索処理を実行
        LrecAdo.Open(LsSQL, McnnAdo, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly)

        '検索した結果、該当データがなかった場合
        If LrecAdo.EOF = True Then
            txtSyainNo.Focus()

            'ADOオブジェクトを終了
            LrecAdo.Close()
            'ADOオブジェクトを開放
            LrecAdo = Nothing
            'DBのCiose
            McnnAdo.Close()
            Exit Sub

        End If

        LsSyainNo = LrecAdo.Fields("syain_id").Value()
        LsKinmuDate = LrecAdo.Fields("KinmuDate").Value
        LsKinmuTime = LrecAdo.Fields("KinmuTime").Value

        Dim m As Integer
        Dim F2 As Form2
        F2 = New Form2

        '確認メッセージを表示する。
        m = MsgBox("ログイン処理を行いますか?", MsgBoxStyle.YesNo)

        '上記メッセージに肯定的な応答がなされた場合サブ画面をモーダル表示する。
        If m = vbYes Then
            F2.gsSyainNo = Me.txtSyainNo.Text
            F2.ShowDialog()
        End If

        If F2.GBloginOK = True Then
            lblSyainName2.Text = F2.gsSyainNm

            txtSyainNo.Enabled = False
            btnLogin.Enabled = False
            txtDate.Enabled = True
            txtTime.Enabled = False
            btnKensaku.Enabled = True

        Else

            lblSyainName.Text = ""
            txtDate.Text = ""
            txtTime.Text = ""

        End If
        'ADOオブジェクトを終了
        LrecAdo.Close()
        'ADOオブジェクトを開放
        LrecAdo = Nothing
        'DBのCiose
        McnnAdo.Close()

        Me.txtDate.Focus()

    End Sub

引用返信 編集キー/
■20582 / inTopicNo.23)  Re[17]: null
□投稿者/ 初心者 (67回)-(2008/06/12(Thu) 16:47:17)
検索のあたりでエラーになるんですT_T

引用返信 編集キー/
■20583 / inTopicNo.24)  Re[17]: null
□投稿者/ επιστημη (1083回)-(2008/06/12(Thu) 16:48:36)
επιστημη さんの Web サイト
で、これのどこで例外が発生していますか?

引用返信 編集キー/
■20585 / inTopicNo.25)  Re[17]: null
□投稿者/ Z (7回)-(2008/06/12(Thu) 16:50:53)
エラーになるのはここでしょうか?

LsKinmuDate = LrecAdo.Fields("KinmuDate").Value
LsKinmuTime = LrecAdo.Fields("KinmuTime").Value

LsKinmuDate = ""+recAdo.Fields("KinmuDate").Value
LsKinmuTime = ""+LrecAdo.Fields("KinmuTime").Value

又は

LsKinmuDate = LrecAdo.Fields("KinmuDate").Value.ToString()
LsKinmuTime = LrecAdo.Fields("KinmuTime").Value.ToString()


引用返信 編集キー/
■20586 / inTopicNo.26)  Re[18]: null
□投稿者/ 初心者 (68回)-(2008/06/12(Thu) 16:55:34)
No20583 (επιστημη さん) に返信
> で、これのどこで例外が発生していますか?
>
LsKinmuDate = LrecAdo.Fields("KinmuDate").Value

で発生してます。

引用返信 編集キー/
■20588 / inTopicNo.27)  Re[18]: null
□投稿者/ 初心者 (69回)-(2008/06/12(Thu) 17:01:01)
No20585 (Z さん) に返信
> エラーになるのはここでしょうか?
>
> LsKinmuDate = LrecAdo.Fields("KinmuDate").Value
> LsKinmuTime = LrecAdo.Fields("KinmuTime").Value
>
> LsKinmuDate = ""+recAdo.Fields("KinmuDate").Value
> LsKinmuTime = ""+LrecAdo.Fields("KinmuTime").Value
>
> 又は
>
> LsKinmuDate = LrecAdo.Fields("KinmuDate").Value.ToString()
> LsKinmuTime = LrecAdo.Fields("KinmuTime").Value.ToString()


できました!!
なんでですか?
なにがいけなかったんですか?
>
>
引用返信 編集キー/
■20589 / inTopicNo.28)  Re[19]: null
□投稿者/ επιστημη (1084回)-(2008/06/12(Thu) 17:04:02)
επιστημη さんの Web サイト
> LsKinmuDate = LrecAdo.Fields("KinmuDate").Value
> で発生してます。

そのとき、LrecAdo.Fields("KinmuDate").Value が null なのではいかしら。
nullはつまり空(価がない)ので文字列に変換できません。

nullを空文字として扱いたいのならば

If 検索結果がnull Then
  LsKinmuDate = ""
Else
  LsKinmuDate = LrecAdo.Fields("KinmuDate").Value
EndIf

みたいな処理が必要かと。

引用返信 編集キー/
■20590 / inTopicNo.29)  Re[20]: null
□投稿者/ επιστημη (1085回)-(2008/06/12(Thu) 17:05:27)
επιστημη さんの Web サイト
あぁ、なるほど。 ToString() が "" を返してればいいわけか。

引用返信 編集キー/
■20591 / inTopicNo.30)  Re[19]: null
□投稿者/ Z (8回)-(2008/06/12(Thu) 17:10:16)
No20586 (初心者 さん) に返信
> ■No20583 (επιστημη さん) に返信
>>で、これのどこで例外が発生していますか?
>>
> LsKinmuDate = LrecAdo.Fields("KinmuDate").Value
>
> で発生してます。
>

型が違います。

「LsKinmuDate」はString型

DBで「char」や「varchar」のカラムは「中身」があればString型で帰ってきますが、
今回のように中身が「空っぽ」だとDBNull型で帰ってきます。

DBの「KinmuDate」の中身がNULLになっていると思います。

で、型が違うので、「型が違う(String型とDBNull型は縁もゆかりもない、全くの他人同士なので、型を合わせることが出来ません)」っていうエラーに
なります。

ToString()や「""+」を用いることで、明示的にString型に変換されるため、型が合うのでエラーになりません。


引用返信 編集キー/
■20592 / inTopicNo.31)  Re[21]: null
□投稿者/ Z (9回)-(2008/06/12(Thu) 17:15:05)

もし、これで解決した場合は、「AI-Light」様の掲示板にも
解決したことを書いて置いて下さい。お願いします。



引用返信 編集キー/
■20593 / inTopicNo.32)  Re[22]: null
□投稿者/ 初心者 (70回)-(2008/06/12(Thu) 17:20:23)
No20592 (Z さん) に返信
>
> もし、これで解決した場合は、「AI-Light」様の掲示板にも
> 解決したことを書いて置いて下さい。お願いします。
>
>
>
ありがとうございました!
引用返信 編集キー/
■20594 / inTopicNo.33)  Re[23]: null
□投稿者/ 初心者 (71回)-(2008/06/12(Thu) 17:20:43)
No20593 (初心者 さん) に返信
> ■No20592 (Z さん) に返信
>>
>>もし、これで解決した場合は、「AI-Light」様の掲示板にも
>>解決したことを書いて置いて下さい。お願いします。
>>
>>
> >
> ありがとうございました!
解決済み
引用返信 編集キー/
■20603 / inTopicNo.34)  Re[24]: null
□投稿者/ Jitta on the way (111回)-(2008/06/12(Thu) 19:10:21)
SQL インジェクション脆弱性は、放置ですか?
解決済み
引用返信 編集キー/
■20606 / inTopicNo.35)  Re[25]: null
□投稿者/ Z (10回)-(2008/06/12(Thu) 19:58:18)
No20603 (Jitta on the way さん) に返信
> SQL インジェクション脆弱性は、放置ですか?

確かに脆弱性ありですね。

テキストに「100 or msyain.syain_id>'0'」
とかやったら入れそう。

引用返信 編集キー/
■20607 / inTopicNo.36)  Re[26]: null
□投稿者/ はつね (779回)-(2008/06/12(Thu) 21:13:51)
はつね さんの Web サイト
No20606 (Z さん) に返信
>>SQL インジェクション脆弱性は、放置ですか?
>
> 確かに脆弱性ありですね。
>
> テキストに「100 or msyain.syain_id>'0'」
> とかやったら入れそう。

それだと、項目名が分かってないとダメですが、項目名が分からなくても
SQLインジェクションはできますね。
あえて、ここでは書きませんが↓あたりを参考にしてください。
http://hatsune.wankuma.com/seminer/tokyo20/index.aspx
「SQLインジェクションとParameterオブジェクト」あたり

※解決済みはずれていたのでつけときます。
解決済み
引用返信 編集キー/
■20611 / inTopicNo.37)  Re[27]: null
□投稿者/ Z (11回)-(2008/06/12(Thu) 21:57:24)
No20607 (はつね さん) に返信
> ■No20606 (Z さん) に返信
> >>SQL インジェクション脆弱性は、放置ですか?
>>
>>確かに脆弱性ありですね。
>>
>>テキストに「100 or msyain.syain_id>'0'」
>>とかやったら入れそう。
>
> それだと、項目名が分かってないとダメですが、項目名が分からなくても
> SQLインジェクションはできますね。
> あえて、ここでは書きませんが↓あたりを参考にしてください。
> http://hatsune.wankuma.com/seminer/tokyo20/index.aspx
> 「SQLインジェクションとParameterオブジェクト」あたり
>
> ※解決済みはずれていたのでつけときます。
引用返信 編集キー/
■20612 / inTopicNo.38)  Re[28]: null
□投稿者/ Z (12回)-(2008/06/12(Thu) 22:01:57)
ありがとうございます。
一応、その辺も一通り知っています。
前にSQLインジェクションやセッションハイジャック、CSRFとか
調べまくったんで。(担当内フレームワーク開発するために)

トピ主の初心者様も知っておくべき内容ですけど、
まだ、この辺はちょっと早いので、またの機会に
知ってもらいましょう。


No20611 (Z さん) に返信
> ■No20607 (はつね さん) に返信
>>■No20606 (Z さん) に返信
>>>>SQL インジェクション脆弱性は、放置ですか?
> >>
> >>確かに脆弱性ありですね。
> >>
> >>テキストに「100 or msyain.syain_id>'0'」
> >>とかやったら入れそう。
>>
>>それだと、項目名が分かってないとダメですが、項目名が分からなくても
>>SQLインジェクションはできますね。
>>あえて、ここでは書きませんが↓あたりを参考にしてください。
>>http://hatsune.wankuma.com/seminer/tokyo20/index.aspx
>>「SQLインジェクションとParameterオブジェクト」あたり
>>
>>※解決済みはずれていたのでつけときます。
解決済み
引用返信 編集キー/
■20613 / inTopicNo.39)  Re[6]: null
□投稿者/ Jitta (484回)-(2008/06/12(Thu) 22:24:02)
Jitta さんの Web サイト
No20554 (加藤 さん) に返信
>
>>■No20550 (初心者 さん) に返信
> >>調べてみても専門用語だらけで意味がわからないんです。
>
> ヘルプ(MSDN)は初心者の方には、ちと敷居が高いと思われます。
> 初歩の初歩から少しずつ学ばれるとよろしいかと思います。
>
>
> それにしてもMSDNの初心者向けの解説書などあれば良いのですがね。
> どなたか執筆されてはいかがですか、印税が○○
>
こんなのはどうでしょう?
http://www.wankuma.com/seminar/20071124osaka15/Default.aspx

解決済み
引用返信 編集キー/
■20615 / inTopicNo.40)  Re[29]: null
 
□投稿者/ Jitta (486回)-(2008/06/12(Thu) 22:29:05)
Jitta さんの Web サイト
No20612 (Z さん) に返信
>
> トピ主の初心者様も知っておくべき内容ですけど、
> まだ、この辺はちょっと早いので、またの機会に
> 知ってもらいましょう。

 早いなんて事はないです。業務システムである以上、最初から知っておくべき事だと思います。

 イントラでしか使用しないものであったとしても、勤怠管理システムのようです。
下手したら、知っている人には操作し放題って事になります。
解決済み
引用返信 編集キー/

<前の20件 | 次の20件>
トピック内ページ移動 / << 0 | 1 | 2 >>

管理者用

- Child Tree -