我已经为我创建的内部应用程序完成了设计、框架和大部分代码。我正在尝试添加一些功能,这些功能将转换为 3 种完全不同的形式,即访问、查看和更新存储在 Access 数据库中的数据,这些数据位于隐藏的网络驱动器上。
我的问题的相关信息如下...... 1)用户启动应用程序,然后收集并显示他们当前登录的用户名,并询问他们是否希望继续。2) 一旦他们选择继续,代码就会在 MS Access 数据库中搜索一个代理表,以查看是否为代理的名称创建了一条记录。3)如果记录存在(当前),表格将关闭,返回数据输入表格开始输入信息,只显示他们的用户名 4)如果记录不存在,它打开另一个表格,用户将在其中输入他们的详细信息,经理、班次开始和结束时间以及他们的 AgentID 5) 保存 Agent 详细信息后,应用程序返回到数据输入表单开始输入信息。
我希望用这段代码完成什么......在步骤 3)中,在成功找到与其用户名匹配的记录后,从 AgentID 列中的匹配行返回一个值。数据库有一个查找字段,将 AgentID 与其特定角色相匹配,稍后我将使用它来显示基于用户角色的替代名称表单。目前,我只想从相应的行中获取 AgentID,然后将值保存到我创建的静态类变量中,以供其他现有表单使用。
使用语句供参考
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Security.Principal;
我想弄清楚的代码在 If 函数中。代码将成功识别用户是否在 Agent 表中有条目,如果没有,则将用户发送到表单以创建条目。
private void button1_Click(object sender, EventArgs e)
{
// set FNameLabel to user's name without domain
FNameLabel.Text = WindowsIdentity.GetCurrent().Name.Split('\\')[1];
// create OleDb connection and command, @name for agent name variable
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.jet.oledb.4.0;data source=\\myserver\hidden$\database.mdb");
OleDbCommand cmd = new OleDbCommand("SELECT * FROM Agent WHERE AgentName=@name");
// create command connection and set parameters
cmd.Connection = con;
cmd.Parameters.AddWithValue("@name", FNameLabel.Text);
con.Open();
OleDbDataReader read = cmd.ExecuteReader();
// If there is a record that matches Agent Name, return to previous form
if (read.Read() == true)
{
// MessageBox.Show("agent name in database");
// If Agent Name matches, return Agent ID, passed to custom class variable
// Class variable for Agent ID
// AgentID.Var = [some variable that contains AgentID where AgentName = current user]
this.Close();
return;
}
// If there is no record that matches Agent Name, open form to enter Agent details
// MessageBox.Show("agent name NOT in database");
AgentInfo agents = new AgentInfo();
agents.ShowDialog();
this.Close();
}
类变量工作顺利
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DataEntry
{
static class AgentID
{
private static string agentid = "";
public static string Var
{
get
{
return agentid;
}
set
{
agentid = value;
}
}
}
}