0

データベースから真/偽のステートメントを取得して何かを行うには、アプリが必要です。

私のデータベースにはTinyInt(1)、真/偽のステートメント用の「禁止」という行があります。

ユーザーがライセンス名とライセンス番号を入力してボタンをクリックすると、アプリは入力データをデータベース内の特定の行と比較します。したがって、OK の場合は続行し、OK でない場合はエラーを表示します。

また、挿入された入力の true/false ステートメントは、ListBox アイテムとして追加されます。

これでうまくいきましたが、実際にはアプリが true または false で何かを行う必要があります。

だから私が必要とするのは、挿入された入力からtrueまたはfalseを取得し、それを使用して「falseの場合は新しいウィンドウを開いて、trueの場合はTextBox内にエラーを表示する」と言うことです

エラーを表示することは大したことではありません。うまくいきました。ここで重要なことは、 true または false を使用して続行するかしないかです。

ブール値と関係があることは知っていますが、それを扱う方法がわかりません。

これが私がこれまでに得たものです:(完全なコードではありませんが、これでうまくいくと思います)

ありがとう!

    public partial class MainWindow : Window
{
    string ConnectionString = Properties.Settings.Default.cloudpos_beheerCS;
    public MainWindow()
    {
        InitializeComponent();
    }

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        string Naamtxt = Naam.Text;
        string Licentietxt = Licentie.Text;

        MySqlConnection conn = new MySqlConnection(ConnectionString);
        MySqlCommand cmdDatabase = conn.CreateCommand();
        MySqlDataReader rdr;
        cmdDatabase.CommandText = "SELECT * FROM cloudposgebruikers WHERE licentie = @licentie AND naam = @naam";
        cmdDatabase.Parameters.AddWithValue("@naam", Naamtxt);
        cmdDatabase.Parameters.AddWithValue("@licentie", Licentietxt);

        try
        {
            conn.Open();
        }
        catch (Exception)
        {
            ErrorVerbinding.Content = "Er kan geen verbinding gemaakt worden met de database.";
            return;
        }

        rdr = cmdDatabase.ExecuteReader();
        int ollema = rdr.GetOrdinal("ban");
        while (rdr.Read())
            ListBox1.Items.Add(rdr.GetString(ollema));

            conn.Close();
        }

    }
4

2 に答える 2

2

わかりました私は解決策を見つけました。タスクに bool を作成する必要はありませんでした。わずか 2 行のコードで動作します。とにかくみんなありがとう!

        if (rdr.HasRows)
        {
            while (rdr.Read()) //Make sure this is added or it won't work.
            {
                if (rdr.GetBoolean("ban"))
                {
                    ErrorSuspend.Text = "Uw licentie is verlopen of geblokkeerd.                      Contacteer uw verdeler om een nieuwe licentie te bekomen.";
                    return;
                }

                else
                {
                    Login Login = new Login();
                    this.Content = Login;
                }
            }
        }
        else
        {
            ErrorLN.Content = "Licentie of naam incorrect.";
            return;
        }
    }
于 2013-01-13T18:32:13.080 に答える
0

これを試して :

bool ollema = (bool)rdr.GetValue(Index OF Ban Field);

while (rdr.Read())
           ListBox1.Items.Add(rdr.GetString(ollema));
            conn.Close();
        }
于 2013-01-13T10:51:16.033 に答える