質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

解決済

VB.NET  プログラムの処理について

mon121
mon121

総合スコア2

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

2回答

0評価

0クリップ

548閲覧

投稿2021/12/18 06:58

編集2021/12/19 02:52

VB.NETでログイン機能を作成しています。
先に行っておくとエラーなどはでておらず、プログラムとしては完成しております。

下記のようなプログラムを様々なサイトを参考にし作成しました。
VB.NETで作成し、機能の説明をするとID(テキストボックス1)とパスワード(テキストボックス
2)に、IDとパスワードを入力し、データベース上のデータと一致すればメニュー画面へ移行。
それ以外の場合はエラー画面を表示するというプログラムです。

データーベースはSQLサーバーで作成しております。

質問は、このプログラムについてなのですが下記のような処理を行っているイメージで
あっていますでしょうか

IDとパスワードがテキストボックスに入力される

データベースを検索

一致している行があれば次のフォームへいき、一致項目があった時点で検索が終了する

というイメージなのですが合っていますでしょうか

また、下記の記述部分に関してですが

SQL &= " USER_ID='" + id + "' AND PASSWORD='" + pass + "' "

変数の横の + の意味がわかりません。
ここの部分はあるサイトの記述をコピペし作成したのですが、
どのような処理が行われているのかがはっきりとわかりません

入力したIDとデータベース上のUSER_IDが一致しているかを見ているのだとは思いますが、
+を記載する意味がよくわかりません

サイトを見られれば良いのですが、あまりに多くのサイトをみたため、サイトがわからなくなってしまいました。

調べてもよくわからなかったため、ご回答いただければと思います。

該当のソースコード

Public Class rogin Private Sub rogin_Load(sender As Object, e As EventArgs) Handles MyBase.Load End Sub 'ログインボタン' Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Try 'データベース接続 Dim serverName As String = "***" Dim dataBase As String = "***" Dim userid As String = "***" Dim pwd As String = "***" Using conn As New SqlClient.SqlConnection() conn.ConnectionString = " Data Source = " & serverName & ";Initial Catalog = " & dataBase & ";User ID = " & userid & ";Password =" & pwd conn.Open() Dim id As String id = TextBox1.Text Dim pass As String pass = TextBox2.Text 'SQLの設定 Dim cd As New SqlClient.SqlCommand Dim dr As SqlClient.SqlDataReader Dim SQL As String 'SQL文生成 SQL = "" SQL &= "SELECT" SQL &= " *" SQL &= " FROM" SQL &= " MST_USER" SQL &= " WHERE" SQL &= " USER_ID='" + id + "' AND PASSWORD='" + pass + "' " 'SQLコマンド設定 cd.CommandText = SQL cd.Connection = conn dr = cd.ExecuteReader If dr.Read() = True Then 'メニュー画面を表示 Dim D2 As New Menu D2.Show() '自画面を非表示 Me.Visible = False Else 'エラー画面を表示 Dim D1 As New roguin_error D1.Show() End If dr.Close() cd.Dispose() conn.Close() conn.Dispose() End Using Catch ex As Exception End Try End Sub End Class

ここにより詳細な情報を記載してください。
環境 ウィンドウズ7
プログラム VB.NET
フレームワーク NET Framework 4.5

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

cx20

2021/12/18 08:45

sa のパスワードを質問文に載せるのはやめましょう。。(せめて「****」とかにしておいてください。) ダミーのパスワードだと信じたいですが・・ もし実在するパスワードでしたらセキュリティ事故になりかねませんので、質問の削除依頼をされることをお勧めします。 <参考> ■ 管理不備の「MS SQL Server」狙うアクセスが増加 https://www.security-next.com/069653
SurferOnWww

2021/12/19 00:33

質問者さん、無言ですが、回答がでているのでそれらに対するフィードバックを回答のコメント欄に書いてください。役に立った/立たなかったぐらいはすぐに返せるのでは? 役に立たなかったなら、どこがダメなのかを書いてもらえるとより期待に近い回答が出てくるかも。とにかく無言で放置は NG です。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。