检查访问数据库中的名称

时间:2017-04-25 13:53:24

标签: c#

我有一个名为LoginTable的访问表,其文本列名为Username,Password和一个名为group的整数列。一个名为AddUser的窗体,带有一个名为Username_txtBx的文本框和一个名为Department_cmbBx的组合框。还有一个名为Add_btn的按钮。我可以在按钮单击事件中为用户添加以下代码。 但是我将如何使用它来搜索数据库以检查用户名是否已经存在以及是否确实抛出了一个消息框告诉用户它确实存在以及它是否运行下面的代码。我找到了很多SQL数据库的例子,但没有找到Access数据库的例子。

try
{
    int g = new int();

    if (Department_cmbBx.SelectedItem.ToString() == "Office")
    {
        g = 1;
    }
    else if (Department_cmbBx.SelectedItem.ToString() == "Stores")
    {
        g = 2;
    }
    else if (Department_cmbBx.SelectedItem.ToString() == "Workshop")
    {
        g = 3;
    }
    else if (Department_cmbBx.SelectedItem.ToString() == "Management")
    {
        g = 4;
    }
    else if (Department_cmbBx.SelectedItem.ToString() == "Admin")
    {
        g = 5;
    }

    connection.Open();
    OleDbCommand command = new OleDbCommand();
    command.Connection = connection;
    command.CommandText = "insert into LoginTable(Username,[Password],[Group]) values ('" + Username_txtBx.Text + "','password'," + g + ")";
    command.ExecuteNonQuery();
    connection.Close();
    Username_txtBx.Text = "";
    Department_cmbBx.Text = "";                
}
catch (Exception ex)
{
    MessageBox.Show("error   " + ex);
}

2 个答案:

答案 0 :(得分:2)

首先,您的plot(x = longitude, y = Latitude, ylim = range(c(Latitude,Latitude_2)), xlim = range(c(longitude,longitude_2)), type="l", col="blue") lines(longitude_2,Latitude_2, col = "darkgreen") polygon(pol_1@polygons[[1]]@Polygons[[1]]@coords, col = 'lightblue') title(main = "Two different paths"); legend("right", legend=c("path A", "path B", "Intersect"), col = c("blue", "darkgreen", "red"), lty = 1:1, cex = 0.8, box.lty = 0) lines(result@lines[[1]]@Lines[[1]]@coords, col = "red") lines(result@lines[[1]]@Lines[[2]]@coords, col = "red") points(result@lines[[1]]@Lines[[1]]@coords, col = "red") points(result@lines[[1]]@Lines[[2]]@coords, col = "red") text(result@lines[[1]]@Lines[[1]]@coords, labels = pasteCols(round(t(result@lines[[1]]@Lines[[1]]@coords),4), sep = " "), cex= 0.7) text(result@lines[[1]]@Lines[[2]]@coords, labels = pasteCols(round(t(result@lines[[1]]@Lines[[1]]@coords),4), sep = " "), cex= 0.7) 语句可以替换为更有效和可读的if语句。

其次,您可以使用switch并使用以下OleDbDataReader查询来检查您的表格中是否已存在用户名。

请注意我使用Command.Parameters.Add,这在将SQL命令编写为字符串时更可靠,也是最佳做法。

select

答案 1 :(得分:0)

感谢Mason我出于某种原因无法使你的代码工作,但是确实使用了switch语句,并且像其他人一样选择了查询。我最终使用以下代码

               bool UserExists = false;
            command.CommandText = "Select [Username] from LoginTable where Username = '" + Username_txtBx.Text + "'";
            OleDbDataReader reader = command.ExecuteReader();

            int g = new int();
            while (reader.Read())
            {
                UserExists = true;
            }
            connection.Close();
            if (!UserExists)
            {