繁体   English   中英

WPF(C#)中的数据绑定

[英]Databinding in WPF (C#)

不便之处,敬请原谅。

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

我的窗口看起来像这样: 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)如何绑定我现在的数据库?

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,它可以正常工作,但是当我根据数据库的用户名和密码键入内容时,它会提示我登录失败。

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进行身份验证。 将其放在您的注释行上方。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM