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

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

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

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

解決済

Windowsformを使ったマスタメンテ画面の作成

kawanoonigiri
kawanoonigiri

総合スコア14

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

3回答

0評価

0クリップ

683閲覧

投稿2022/02/14 01:09

前提・実現したいこと

C#初学者です。
windowsformとSQLserver、C#を使ったユーザーマスタメンテの画面を作成しています。
下記③番の条件にて入力された、ユーザーIDとサーバーに登録されたIDを比較するコード書けず止まっています。

①ユーザーID(6桁の整数)を入力し、
②「入力完了(btnFinish_Click)」をクリックすると、
③サーバーにそのIDが登録されていなければ
④ユーザー名、パスワードを入力し登録する。
という流れです。

お力添えいただけますと幸いです。

発生している問題・エラーメッセージ

該当のソースコード

SQLserver

USER_ID USER_NAME PASSWORD ADMIN_FLAG CRT_DAY CRT_TIME 1 tanaka aaa NULL NULL NULL 2 yamada bbb NULL NULL NULL

C#

using System; using System.ComponentModel; using System.Data.SqlClient; using System.Text; using System.Windows.Forms; namespace user_registration { public partial class Form1 : Form { public Form1() { InitializeComponent(); timer1.Start(); ActiveControl = textBox1; MessageBox.Show("ORG0001 START"); } private void Form1_KeyDown(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.F9: btnRevocation.Focus(); btnRevocation.PerformClick(); break; case Keys.F10: btnClosing.Focus(); btnClosing.PerformClick(); break; case Keys.F12: btnFinish.Focus(); btnFinish.PerformClick(); break; default: return; } } private void checkBox1_CheckedChanged(object sender, EventArgs e) { } private void Form1_Load(object sender, EventArgs e) { KeyPreview = true; } private void label1_Click(object sender, EventArgs e) { } private void textBox1_TextChanged(object sender, EventArgs e) { } private void timer1_Tick(object sender, EventArgs e) { DateTime datetime = DateTime.Now; lblDate.Text = datetime.ToString("yyyy/MM/dd HH:mm:ss"); } private void textBox3_TextChanged(object sender, EventArgs e) { } private void groupBox2_Enter(object sender, EventArgs e) { } private void groupBox1_Enter(object sender, EventArgs e) { } private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { } private void btnDeletion_Click(object sender, EventArgs e) { if (body.Enabled == false) { textBox1.Clear(); } if (header.Enabled == false) { if (!String.IsNullOrEmpty(textBox2.Text)|| !String.IsNullOrEmpty(textBox3.Text)) { textBox2.Clear(); textBox3.Clear(); checkBox1.Checked = false; } else { checkBox1.Checked = false; header.Enabled = true; body.Enabled = false; } } } private void btnClosing_Click(object sender, EventArgs e) { if (String.IsNullOrEmpty(textBox1.Text) && String.IsNullOrEmpty(textBox2.Text) && String.IsNullOrEmpty(textBox3.Text)) { Application.Exit(); } else { DialogResult result = MessageBox.Show("入力中の内容は破棄されます。\nよろしいですか?", "確認", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation); if (result == DialogResult.Yes) { MessageBox.Show("ORG0001 END"); Application.Exit(); } } } private void btnFinish_Click(object sender, EventArgs e) { try { if (header.Enabled == true) { if (String.IsNullOrEmpty(textBox1.Text)) { MessageBox.Show("ユーザーコードを入力してください。"); ActiveControl = textBox1; return; } } if (textBox1.Text.IndexOf(' ') > -1 && this.ActiveControl != null) { MessageBox.Show("不正な文字列が含まれています"); ActiveControl = textBox1; return; } body.Enabled = true; header.Enabled = false;         // ここから下のコードがSQL文の記載箇所です。 SqlConnection connection = new SqlConnection(Properties.Settings.Default.sqlServer); connection.Open(); MessageBox.Show("接続に成功しました"); StringBuilder sql = new StringBuilder(); sql.AppendLine("SELECT USER_ID"); sql.AppendLine("FROM USER_REGISTRATION"); sql.AppendLine("WHERE USER_ID = 1"); SqlCommand command = new SqlCommand(sql.ToString(), connection); SqlDataReader dr = command.ExecuteReader(); //while (dr.Read()) //{ // for (int i = 0; i < dr.FieldCount; i++) // { // MessageBox.Show(dr[i].ToString()); // } //} //builder.DataSource = "localhost\\SQLEXPRESS"; //builder.UserID = "test"; //builder.Password = "test"; //builder.InitialCatalog = "master"; //builder.IntegratedSecurity = true; //using (SqlConnection connection = new SqlConnection(builder.ConnectionString)) //{ // connection.Open(); // MessageBox.Show("接続に成功しました"); // SqlCommand command = new SqlCommand(); //} } catch (SqlException ex) { MessageBox.Show(ex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } }

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

Zuishin

2022/02/14 01:33 編集

> 下記③番の条件にて入力された、ユーザーIDとサーバーに登録されたIDを比較するコード書けず止まっています。 C# ではなく SQL で解決すべき問題です。
SurferOnWww

2022/02/15 01:11

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

2022/02/15 03:02

SurFerOnWww様 回答ありがとうございます。 こちらの説明に不足していた部分があり、いただいた回答は使用しませんでしたが、他の機会にいかそうと思います。 また、上記コード解決済みです。 後ほど解決コードを記載の上、本質問を閉じさせていただきます。 ご回答並びにご指摘ありがとうございました。
SurferOnWww

2022/02/16 03:40

> 後ほど解決コードを記載の上、本質問を閉じさせていただきます。 忙しいのかもしれませんが早めにそれをお願いします。自分が関わったスレッドがオープン状態のままなのは自分的にかなり気になりますので。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。