0

我需要我的应用程序从数据库中获取真/假语句并对其进行处理。

在我的数据库中,我有一行名为“ban”,TinyInt(1)用于表示真/假语句。

如果用户键入他的许可证名称和许可证编号并单击一个按钮,我的应用程序会将输入数据与我的数据库中的特定行进行比较。所以如果ok = continue,如果不是ok,就显示错误。

此外,插入输入的真/假语句将被添加为 ListBox 项。

现在我开始工作了,但实际上我需要我的应用程序来做一些对或错的事情。

所以我需要从插入的输入中获取真或假,然后用它说“如果为假,则打开新窗口,如果为真则在文本框中显示错误”

显示错误没什么大不了的,我得到了它的工作。这里的主要内容是使用 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

好的,我找到了解决方案。我不需要为该任务创建一个布尔值,只需 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 回答