c# - WPF 中的数据绑定(bind) (C#)

标签 c# wpf database visual-studio data-binding

对于造成的任何不便,我们深表歉意。

想询问有关数据库或数据绑定(bind)的问题

我的窗口看起来像这样:http://i25.tinypic.com/a0x5kn.jpg

浏览按钮是查找“网上邻居”

private void browseBtn_Click(object sender, RoutedEventArgs e)
 {
 FolderBrowserDialog dialog = new FolderBrowserDialog();
 Type t = dialog.GetType();
 System.Reflection.FieldInfo fi = t.GetField("rootFolder", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
 fi.SetValue(dialog, 0x0012); dialog.ShowDialog();
 dialog.ShowDialog();
 string selected = dialog.SelectedPath;
 computerText.Text = dialog.SelectedPath;
 }

现在我的 computerText.Text 传递信息,例如:Computer1

现在对于登录,我想要一个数据库来查看 computerText 的信息是否在哪个用户名和密码下。我已经使用 Microsoft Access 创建了一个数据库,如下所示...

id computerName loginID password
1  Computer1      com1    123456
2  Computer2      com2    234567

所以我粗略地键入 loginBtn 的命令...

private void loginBtn_Click(object sender, RoutedEventArgs e)
{
 // if the computerText.Text == my datasource's data [computerName] && loginName.Text == my datasource's data [loginID] && password.Text == my datasource's data [password]
 {
  loginStatus.Text = "Login Success!";
 }
 else
 {
  loginStatus.Text = "Login Failed!";
 }

所以我的问题是:

1) 如何绑定(bind)我现有的数据库?

2)如何编写我想做的上述代码?

需要帮助=[

已更新 做了如下代码:

private void loginBtn_Click(object sender, RoutedEventArgs e)
{
OleDbConnection conn;
OleDbCommand comm;
OleDbDataReader dr;
conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|/Database1.accdb");
comm = new OleDbCommand("Select * from Remote where loginId =@id and password=@pass", conn); 
comm.Parameters.Add(new OleDbParameter("@id",System.Data.oleDbType.NVarChar,20, "loginID")); 
comm.Parameters.Add(new OleDbParameter("@pass",System.Data.oleDbType.NVarChar,20, "password"));
conn.Open();
dr = comm.ExecuteReader();
conn.Close();

if (dr.HasRows)
{
loginStatus.Text = "Login Successfully";
}
else
{
loginStatus.Text = "Login Failed!";
string message = "Wrong username/password is been entered!";
string caption = "Alert!";
MessageBoxButton buttons = MessageBoxButton.OK;
MessageBoxImage icon = MessageBoxImage.Warning;
System.Windows.MessageBox.Show(message, caption, buttons, icon);
}
}

提示错误:“命名空间‘System.Data’中不存在类型或命名空间名称‘oleDbType’(是否缺少程序集引用?)”

如果我删除 System.Data.oleDbType.NVarChar,20,它工作得很好,但是当我根据我的数据库输入用户名和密码时,它提示我登录失败.. EG:

Computer Name : Computer1
Username: com1
Password: 123456

最佳答案

f可能是这样的,创建一个连接然后从你的访问文件中读取。

 OleDbConnection conn;
    OleDbCommand comm;
    OleDbDataReader dr;
    conn = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\\db1.mdb");
    comm = new OleDbCommand("Select * from Table1 where loginId =@id and password=@pass",conn);
    comm.Parameters.Add(new OleDbParameter("@id",System.Data.oleDbType.NVarChar,20, "loginID"));
    comm.Parameters.Add(new OleDbParameter("@pass",System.Data.oleDbType.NVarChar,20, "password")); 

    conn.Open();
    dr = comm.ExecuteReader();
    conn.Close();
if(dr.hasrows)
{
//login success
}
else
 //login fail

然后您可以使用 dr 对用户输入进行身份验证。将其放在您的评论行上方。

关于c# - WPF 中的数据绑定(bind) (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3286376/

相关文章:

c# - 是否可以将 TextBlock 的文本绑定(bind)到应用程序 AssemblyVersion?

WPF MVVM 刷新 View

c# - 命名空间 'Window' 中不存在类型或命名空间名称 'System.Windows'

c# - 从客户端正则表达式实现服务器端正则表达式验证

c# - DataGridView 的替代品

c# - NServiceBus IUniformSession 不适用于 Azure WebJobs SDK

c# - 尝试在 WPF 中设置样式按钮的背景颜色时出现 InvalidOperationException

MySQL 标准化与性能问题

ruby-on-rails - 我可以重建 db/schema.rb 以包含多个数据库而无需迁移吗?

database - 将版本/历史系统添加到数据库表