gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 21:37:25 29 4
gpt4 key购买 nike

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

想询问有关数据库或数据绑定(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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com